日期:2014-05-19  浏览次数:21142 次

ShowDialog()的窗体如何在OK按钮前加一次验证?
有一个form   里面要添一些TextBox
调用ShowDialog()显示对话框

点击   OK的button即返回      

如何在返回前加一次验证   当输入数据不正确时   取消返回?

------解决方案--------------------
OK的属性不设置成DialogResult.Ok
在ok_click里处理
------解决方案--------------------
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
if (DialogResult == DialogResult.OK && textBox1.Text == " ")
{
MessageBox.Show( "输入错误! ");
e.Cancel = true;
}
}

------解决方案--------------------
你可以设置OK的Button的DialogResult.None,然后在Button的Click代码中这样的来写:

private void btnOK_Click(object sender, EventArgs e)
{
string infoString = null
if (!checkData(out infoString))
{
MessageBox.Show(infoString);
return;
}
this.DialogResult = DialogResult.OK;//通过这里来让窗体关闭就可以了.
}

------解决方案--------------------
不要设置ok按钮的dialogresult,而是在按钮事件内写代码

private void btnOK_Click(object sender, EventArgs e)
{
//检查,如果不成功则返回
if(!Check())
return;

this.DialogResult = DialogResult.OK;
}