日期:2014-05-17  浏览次数:20814 次

求教一个关于return问题
一个FORM中有2个按钮,事件为
private void BT_按钮1_Click(object sender, EventArgs e)
{
  if(TextBox1.Text=="")
  {
     MessageBox.Show("对不起,【就诊姓名】不能为空!", "错误", MessageBoxButtons.OK,MessageBoxIcon.Error);
     return;
   }
  else
  {
     ...........
  }
}
private void BT_按钮2_Click(object sender, EventArgs e)
{
    BT_按钮1_Click(null,null);
    ........
}


当我点击BT_按钮2的时候,如果TextBox1.Text等于空,虽然会弹出MessageBox提示窗口,但后面的语句还是执行了,我的意思是,如果TextBox1.Text等于空,那BT_按钮2后面的代码就不要执行了,请高人指点,谢谢啊

------解决方案--------------------
你指BT_按钮2_Click中的其他代码执行了吧,你不想他们执行,可以这样来做:

bool flag=false;

private void BT_按钮1_Click(object sender, EventArgs e)
{
  if(TextBox1.Text=="")
  {
     flag=true;
     MessageBox.Show("对不起,【就诊姓名】不能为空!", "错误", MessageBoxButtons.OK,MessageBoxIcon.Error);
     return;
   }
  else
  {
  flag=false;
     ...........
  }
}
private void BT_按钮2_Click(object sender, EventArgs e)
{
    BT_按钮1_Click(null,null);
    if(flag)
    {
       ........
     }
}

------解决方案--------------------
  if(TextBox1.Text=="")
  {
     MessageBox.Show("对不起,【就诊姓名】不能为空!", "错误", MessageBoxButtons.OK,MessageBoxIcon.Error);
     return;
   }
这里的return就已经结束了,不会执行下面的else方法。
------解决方案--------------------
该回复于2013-12-09 09:15:19被管理员删除