当文本框获得焦点时,是否可能仅在此时发生文本更改事件?

3
我有这样的一个方法。
    public void CheckEmployee()
    {
            ConnectionStringSettings myConnectionString = ConfigurationManager.ConnectionStrings["LibrarySystem.Properties.Settings.LibraryConnectionString"];
            using (SqlConnection myDatabaseConnection = new SqlConnection(myConnectionString.ConnectionString))
            {
                myDatabaseConnection.Open();
                using (SqlCommand mySqlCommand = new SqlCommand("Select * from Employee where EmployeeID = '" + EmployeeIDtextBox.Text + "' ", myDatabaseConnection))
                using (SqlDataReader sqlreader = mySqlCommand.ExecuteReader())
                {

                    if (sqlreader.Read())
                    {
                        string EmployeeID = sqlreader.GetInt32(0).ToString();
                        string Name = sqlreader.GetString(1);
                        string Address = sqlreader.GetString(2);

                        EmployeeIDtextBox.Text = EmployeeID;
                        NametextBox.Text = Name;
                        AddresstextBox.Text = Address;
                    }
                }
            }
     }

我需要编写类似于以下代码的内容。

private void EmployeeIDtextBox_TextChanged(object sender, EventArgs e)
{
    CheckBook();
    NametextBox.Clear();
    AddresstextBox.Clear();
}

private void NametextBox_TextChanged(object sender, EventArgs e)
{
    CheckBook();
    EmployeetextBox.Clear();
    AddresstextBox.Clear();
}

问题在于当我在EmployeeID文本框中输入内容时,NametextBox_TextChanged也会触发,因为该方法从数据库获取一个值并在NametextBox中显示它。
是否可能只在NametextBox获得焦点时才触发NametextBox_TextChanged?反之亦然。
谢谢 :)
1个回答

3

就我个人而言,如果NametextBox没有获得焦点,尝试简单地忽略TextChanged事件 - 例如:

private void NametextBox_TextChanged(object sender, EventArgs e)
{
    if (NametextBox.IsFocused)
    {
        CheckBook();
        EmployeetextBox.Clear();
        AddresstextBox.Clear();
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接