2016-04-25 62 views
0

在形成一個I需要將listbox.SelectedIndex發送到第二形式:如何將變量從一個窗體傳遞給另一個窗體上的textBoxChanged事件處理程序?

private void btnEditWord_Click(object sender, EventArgs e) 
    { 
     Form editWord = new editWord(listBox.SelectedIndex); 


     editWord.ShowDialog(); 


    } 

第二形式:選定的索引變量不在當前上下文中存在。

public editWord(int value) 

    { 
     InitializeComponent(); 

     int selectedIndex = value; 

    } 

private void wordTextBox_TextChanged(object sender, EventArgs e) 
    { 

     string word = (dictionaryDataSet1.Tables[0].Rows[selectedIndex]["Word"].ToString()); 

     wordTextBox.Text = word; 

    } 
+0

添加一個構造函數,其中您將在窗體之間注入共享值,或者將窗體視爲對象,以便它們可以具有屬性。所以寫下你自己的財產,應該公開訪問,你就完成了。 –

+0

只需在構造函數外部移動'int selectedIndex;',將其全局化爲第二個形式,然後在構造函數'selectedIndex = value;' – Pikoh

回答

0

我評論過你的問題,而只是要清楚,你的第二個表單代碼應該是這樣的:

int selectedIndex=-1; 

public editWord(int value) 

{ 
    InitializeComponent(); 

    selectedIndex = value; 

} 

private void wordTextBox_TextChanged(object sender, EventArgs e) 
{ 

    string word = (dictionaryDataSet1.Tables[0].Rows[selectedIndex]["Word"].ToString()); 

    wordTextBox.Text = word; 

} 

與您所提供的代碼的問題是,selectedIndex範圍只構造函數。

-1

只需移動int selectedIndex;在構造函數之外,使其成爲全局的第二種形式,然後在構造函數中selectedIndex = value;

+0

如果您要將我的評論複製爲答案,至少應移除我的尼克和時間部分:) – Pikoh

相關問題