控件验证问题,Validated 事件
先写一下很简单的代码:public partial class Form1 : Form
{
string s = "未检验。";
public Form1()
{
InitializeComponent();
}
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
//写入操作等
MessageBox.Show("已写入," + textBox1.Text + s);
s = "未检验。";
}
private void textBox1_Validated(object sender, EventArgs e)
{
//在此对数据检验
//MessageBox.Show("已检验。");
s = "已检验。";
}
}
说明一下,一个简单的窗口,上有一个textBox1控件,窗口上有一“Save”菜单。
问题:当在textbox1中写入后,直接按菜单,并不会触发Validated事件。如此当保存数据时,这个textBox1中的数据是没有检证的。而如果窗口中有其它控件,按其它控件Validated事件是会触发的。但人们总是填完textBox1控件后直接去按菜单保存的。有没有好的方法去触发textBox1的Validated事件。当然可以在保存菜单中去验证,可如果窗体中有很多textBox,也不方便,也不是很好方法。因为textBox还得与后台数据关联。有没有更好方法。为什么Validated事件就不触发。什么原因。 --------------------编程问答-------------------- 干脆直接在textBox1_Leave事件中添加验证 --------------------编程问答-------------------- 楼上,一样不会触发的 --------------------编程问答-------------------- 看来,按菜单是不会改变控件的焦点,也就不会触发焦点事件。是否很多人都没有注意到这个问题,当你按菜单提交数据时,此数据并未验证过。如果这个提交是窗口中的按键是没这问题的,因为点按键焦点已转,会触发焦点事件的,但菜单、工具条按键等不会,需自行触发验证。 --------------------编程问答-------------------- 也只能在菜单中去验证
补充:.NET技术 , C#