之間的字符串我在C#以下的Windows窗體程序:傳遞形式
表1對一個ListBox和按鈕。當按下按鈕時,它將顯示Form2上有一個TextBox和Button。當按下Form 2上的按鈕時,它將把文本放到Form1上的列表框中。下面是每個表格的代碼,然後是我正在使用的類。任何建議都會很棒。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.NewTextChanged += new EventHandler<CustomEvent>(form2_NewTextChanged);
frm2.ShowDialog();
// Unsubscribe from event
frm2.NewTextChanged -= form2_NewTextChanged;
frm2.Dispose();
frm2 = null;
}
private void form2_NewTextChanged(object sender, CustomEvent e)
{
//Text = e.Text;
lbItem.Items.Add(e.Text);
}
}
public partial class Form2 : Form
{
public event EventHandler<CustomEvent> NewTextChanged;
private string newText;
public Form2()
{
InitializeComponent();
}
public string NewText
{
get { return newText; }
set
{
if (newText != value)
{
newText = value;
OnNewTextChanged(new CustomEvent(newText));
}
}
}
protected virtual void OnNewTextChanged(CustomEvent e)
{
EventHandler<CustomEvent> eh = NewTextChanged;
if (eh != null)
eh(this, e);
}
private void btnSendToForm1_Click(object sender, EventArgs e)
{
newText = textBox1.Text;
}
}
public class CustomEvent : EventArgs
{
private string text;
public CustomEvent(string text)
{
this.text = text;
}
public string Text
{
get { return text; }
}
}
我想用一個自定義的處理程序。有任何建議嗎?
_When表格2按下按鈕,就會把文成在Form1上ListBox中我已經更新了答案,對不起錯了一個 –
之前。我想使用一個自定義的處理程序。當form2上的按鈕被按下時,form2應該關閉嗎?或者這種情況可能發生多次,每次按下按鈕時?也許你的意思是自定義** Event **而不是「處理程序」? –
當我單擊form2上的按鈕使其添加到表單1上的列表框時,不會添加任何內容。 – JPJedi