从另一个表单中捕获文本框事件

时间:2015-01-20 13:28:04

标签: c# winforms events textbox

我的表格中有一个事件:

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

调用另一个类中的函数。我想要做的是,我想在课堂上注意哪些Textbox被改变并做了些什么。所以有多个函数,如上面的那个,它们都调用" 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;

但他无法找到"发件人"我还尝试在我的表单中的函数中创建一个新的Button并传递它,但它似乎不起作用。

1 个答案:

答案 0 :(得分: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