代码之家  ›  专栏  ›  技术社区  ›  m.edmondson

同时进行所有验证

  •  2
  • m.edmondson  · 技术社区  · 14 年前

    当尝试验证Windows窗体上的控件时,我意识到当焦点丢失时,将激发每个控件的.validated()。相反,我只想在按下底部的按钮时验证,我该怎么做?

    3 回复  |  直到 14 年前
        1
  •  0
  •   anishMarokey FIre Panda    14 年前

    您可以在中检查所有验证条件 Button_Click

    /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            if (!String.IsNullOrEmpty(txtUserName.Text))
            {
                MessageBox.Show("Please enter user Name");
            }
            else if(condition)
            {
             }
             ...........
        }
    
        2
  •  1
  •   Henk Holterman    14 年前

    将CausesValidation属性设置为true时,离开控件时将激发.validating(及更高版本:.validating)事件。将其设置为false或不处理事件。

    要进行窗体级验证,请处理.Closing事件(比ButtonClick更好),并在其中编写逻辑。调用验证事件处理程序没有意义。

        3
  •  1
  •   0x49D1    14 年前

    将autovalidate设置为autovalidate.disable,然后在button click事件中调用validateChildren()方法(它将激发所有“验证/验证”事件)。 MSDN