2016-04-25 12 views
0

は、私は2番目のフォームにlistbox.SelectedIndexを送信する必要があります。あるフォームから別のフォームのtextBoxChangedイベントハンドラに変数を渡す方法はありますか?フォーム1で

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;'を2番目のフォームにグローバルにしてから 'selectedIndex = value; 'コンストラクタに移動します – Pikoh

答えて

0

私はあなたの質問にコメントしているが、ちょうどそれを明確にするために、2番目のフォームのコードは次のようになります。

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に移動します。コンストラクタの外側で、2番目のフォームにグローバルにしてから、コンストラクタで次にselectedIndex = valueにします。

+0

私のコメントを回答としてコピーする場合は、ニックと時間の部分:) – Pikoh

関連する問題