2014-10-17 74 views
1

我有兩種形式。在form1上,我有一個按鈕和一個文本框(按鈕來打開form2和文本框來獲取form2中的列表框選擇項的值)。在form2上我只有一個列表框。我只是簡單地想要,當在form1上單擊一個按鈕(用於打開form2),form2打開並從form2上的列表框中選擇列表框以在form1上填充文本框。在form2上的文本框上傳遞列表框項目值

回答

0

你可以使用委託來做到這一點。這裏有一個簡單的例子

在表1

private void Button1_Click(System.Object sender, System.EventArgs e) 
{ 
    using (Form2 frm = new Form2(UpdateTextBoxValue)) { 
     frm.ShowDialog(); 
    } 
} 

public void UpdateTextBoxValue(string value) 
{ 
    TextBox1.Text = value; 
} 

在表2

public delegate void UpdateTextBoxValue(string value); 
private UpdateTextBoxValue _updateTextBoxValue; 

public New(UpdateTextBoxValue updateTextBoxValue) 
{ 
    InitializeComponent(); 

    _updateTextBoxValue = updateTextBoxValue; 
} 

private void ListBox1_SelectedIndexChanged(System.Object sender, System.EventArgs e) 
{ 
    _updateTextBoxValue.Invoke(ListBox1.SelectedItem.ToString); 
} 
+0

Thankx這個工作對我來說:) – 2014-10-17 06:58:34

+0

我會拿出在幾天另一個問題。很快見到你 – 2014-10-17 06:59:21

0

你可以使用委託事件機制。在form2中實現一個委託和相應的事件,並且每當你想在form1上更新值時調用這個事件。無論何時初始化form2並打開它,調用此委託並在form1上附加一個處理程序。這樣你就可以在form1上處理你的listbox值,並且可以在form1上設置你的文本框。

相關問題