我在表单中有两个TextBox
es和一个按钮控件。单击该按钮时,最后输入的TextBox
的名称应显示在MessageBox
中。同时我需要将焦点重置为上次输入的TextBox
。
string str=string.Empty;
bool foc;
在按钮单击中,我编写了以下代码
if (MessageBox.Show("You want to reset or continue", "control",
MessageBoxButtons.OKCancel) == DialogResult.Cancel)
{
if (foc== true)
{
textBox1.Focus();
}
else
{
textBox2.Focus();
}
}
当我点击取消按钮时,焦点应该是最后输入的文本框
private void textBox1_Enter(object sender, EventArgs e)
{
str = textBox1.Name;
foc= textBox1.Focus();
}
private void textBox2_Enter(object sender, EventArgs e)
{
str= textBox2.Name;
foc= false;
}
除了上面的代码行之外,还有其他任何可能的重点放在文本框中,但是当文本框的数量增加时我需要编写条件。 如果我在表单中有文本框,组合框,列表框,复选框或任何其他控件,那么如何找到用户最后输入的控件,并通过使用任何函数而不是在每个控件中写入Enter事件来设置焦点到该控件
答案 0 :(得分:1)
您可以处理Leave
的{{1}}事件来存储最后TextBoxes
控件。
试试这个:
TextBox
答案 1 :(得分:0)
public bool textBox1WasLastFocused = false, textBox2WasLastFocused = false; // Global Declaration
void textBox2_GotFocus(object sender, EventArgs e)
{
textBox2WasLastFocused = true;
textBox1WasLastFocused = false;
}
void textBox1_GotFocus(object sender, EventArgs e)
{
textBox1WasLastFocused = true;
textBox2WasLastFocused = false;
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1WasLastFocused)
MessageBox.Show("textbox1 was ladst focused !");
else if(textBox2WasLastFocused)
MessageBox.Show("textbox2 was ladst focused !");
}