2016-04-25 2 views
0

По форме одной мне нужно отправить 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 = значение;

+0

Если вы собираетесь скопировать мой комментарий в качестве ответа, по крайней мере удалить мой ник и часть времени :) – Pikoh

Смежные вопросы