我有一个带有_onleave事件的文本框。 我验证文本框中的文本并生成一个消息框。 在大多数情况下,一旦消息框清除,焦点移动到被点击的内容,而不是当它是一个复选框时。 有没有什么方法可以捕获生成_onleave事件的点击内容,以便我可以在完成_onleave代码后为其指定焦点(或者在这种情况下单击复选框)。 我试过了:
Control control = (Control)sender;
control.Select();
不幸的是,这会捕获初始文本框并将焦点返回给它。 感谢
用一个例子来演示 启动一个新的Windows窗体应用程序。放置两个文本框和一个复选框。使用以下代码运行该应用程序。上面解释了这个问题,并在此样本中进行了演示。
using System;
using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Size=new Size(223,22);
textBox1.Text = "Click here first - has leave event";
textBox2.Size = new Size(111, 22);
textBox2.Text = "Click here second";
checkBox1.Text = "Try clicking checkbox";
}
private void textBox1_Leave(object sender, EventArgs e)
{
MessageBox.Show("If you clicked the textbox, focus should move to it" + Environment.NewLine + "If you clicked the checkbox, checkstate will not change or will it gain focus");
}
}
}