2015-01-20 3 views
0

У меня есть событие в моей форме:Поймайте Textbox события из другой формы

public void filterByType_TextChanged(object sender, EventArgs e) 
    { 
     dSearch = new D_Search(this); 
     dSearch.filterD(); } 

, который вызывает функцию в другом классе. Что я хочу сделать, так это то, что я хочу заметить в своем классе, что текстовое поле было изменено и что-то сделать. Таким образом, существует несколько функций, подобных описанным выше, и все они называют функцию filterD() в моем классе DSearch. Я попытался

if (sender == form1.filterByType_TextChanged) 
     { sqlCmd = new SqlCommand("SELECT * FROM" } //SQL Statement 
     } 

    datTable = new DataTable(); 
     sqlDatAdapter = new SqlDataAdapter(sqlCmd.CommandText, 
     connection); 
     sqlDatAdapter.Fill(datTable); 

     form1.setDataGrid = datTable; 

, но он не может найти «отправителя» Я также попытался создать новую кнопку в функцию в моей форме и передать его, но это не похоже на работу.

ответ

1

попробовать это -

В форме 1

private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    var dSearch = new D_Search(this); 
    MessageBox.Show(dSearch.filterD(sender)); 
} 

D_Search класс

public class D_Search 
{ 
    Form1 frm = null; 

    public D_Search(Form1 frm1) 
    { 
     frm = frm1; 
    } 

    public string filterD(object sender) 
    { 
     string val = String.Empty; 
     if (sender == frm.textBox1) 
     { 
      val = (sender as TextBox).Text; 
     } 
     return val; 
    } 
} 

также, если вы хотите получить доступ к filterByType_TextChanged текстовое поле в другом классе, то изменить его свойство модификатора до Internal

+0

не работает. dSearch.filterD() - это функция, которую я вызываю в событии в форме. Он все еще не знает отправителя. – uzi42tmp

+0

показать полный код – Rohit

+0

Я получаю исключение NullReferenceException, потому что когда он выходит из оператора if, у меня есть «datTable = новый DataTable()» и «sqlDatAdapter = новый SqlDataAdapter (sqlCmd.CommandText, соединение); написано, и я получаю исключение в инструкции SqlAdapter – uzi42tmp

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