private void butOK_Click(object sender, EventArgs e)
        {
            List<string> arr = new List<string>();            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {                     if (dataGridView1.Rows[i].Cells["Chose"].EditedFormattedValue.ToString() == "True")
                {
                    BookMessage BM = new BookMessage();
                    //BM.str = arr;
                    BM.Show();
                    break;
                }                else
                {
                    MessageBox.Show("请选择课程");
                    break;
                }
            }   为什么每次判断是否进入BookMessage窗口时,都要选中chose列的第一个单元,才能进行正确判断。单单选第二个单元格会只会执行else的代码。请大侠们帮看看是哪里出现了问题,谢谢!!

解决方案 »

  1.   


    private void butOK_Click(object sender, EventArgs e)
      {
      List<string> arr = new List<string>();
      bool flag=false;
      for (int i = 0; i < dataGridView1.Rows.Count; i++)
      { 
       if (dataGridView1.Rows[i].Cells["Chose"].EditedFormattedValue.ToString()== "True")
        {
          flag=true;
        }
      } 
       if(flag)
        {
           BookMessage BM = new BookMessage();
           //BM.str = arr;
           BM.Show();
        }
       else
        {
           MessageBox.Show("请选择课程");
        }
    }
      

  2.   

    你为啥要用这个事件呢,datagridview不是有个cellcontentclick事件,再不行也还有个cellclick事件啊
      

  3.   

    你写的代码不就是只有选中那个Chose列才进行进入BookMessage 的吗?  不选中这一列就会进行else代码啊