日期:2014-05-18  浏览次数:21206 次

为什么DialogResult = DialogResult.OK不起作用
我调用了一个函数,然后再调用这个,点击OK没反应,代码如下
else if(2 == nType)
  {
  if (OnCheck())
  {
  return;
  }
  // else
  // {
  InitAdmin();
  SQLServer.ModifyOperator(m_Admin);
  DialogResult = DialogResult.OK;
  // }
   
  }
 private bool OnCheck()
  {
  if ("" == textName.Text.Trim())
  {
  MessageBox.Show("用户名不能为空!", "提示");
  }
  else if ("" == textPsw.Text.Trim())
  {
  MessageBox.Show("密码不能为空!", "提示");  
  }
  else if ("" == textPsw2.Text.Trim())
  {
  MessageBox.Show("重复密码不能为空!", "提示");
  }
  else if (textPsw.Text != textPsw2.Text)
  {
  MessageBox.Show("密码和重复密码不相同,请重新输入", "提示");
  textPsw.Text = "";
  textPsw2.Text = "";  
  }
  return true;
  }

------解决方案--------------------
OnCheck函数应该改造一下,MessageBox后面加上return false;
C# code

private bool OnCheck()
  {
  if ("" == textName.Text.Trim())
  {
  MessageBox.Show("用户名不能为空!", "提示");
return false;

  }
  else if ("" == textPsw.Text.Trim())
  {
  MessageBox.Show("密码不能为空!", "提示");   
return false;

  }
  else if ("" == textPsw2.Text.Trim())
  {
  MessageBox.Show("重复密码不能为空!", "提示");
return false;

  }
  else if (textPsw.Text != textPsw2.Text)
  {
  MessageBox.Show("密码和重复密码不相同,请重新输入", "提示");
  textPsw.Text = "";
  textPsw2.Text = "";   
return false;

  }
  return true;
  }

------解决方案--------------------
你跟踪一下,因为你的OnCheck函数返回true了,if条件成立了,所以执行return;了,下面的代码不执行了...