当前位置:编程学习 > C#/ASP.NET >>

控件验证问题,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#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,