while(checkbox1.Checked){
    Write(.....);
}

解决方案 »

  1.   

    if (checkBox1.Checked == true) 
                { 
                    serialPort1.Open(); 
                    do 
                    { 
                        Write(textBox1.Text); 
                    } 
                    while (checkBox1.Checked == true); 
                } 
                    
                    serialPort1.Close(); 
      

  2.   

    你这种情况别用do ..while,因为serielPort1.Open这里可能会耗时,如果你这个代码在另一个线程,在Open的时候,checkbox被取消了Checked状态,那接下来的do..while会让Write至少执行一次,建议还是用While循环
      

  3.   

    serialPort1.Open();
    while (checkBox1.Checked == true)
                {
                    serialPort1.Write(textBox1.Text);
                    while (checkBox1.Checked == false);
                }
                   serialPort1.Close();这样调试,循环是死的,串口一直在发数,没办法改变checkbox1的值了
      

  4.   

    哥们你语法真的真的还很欠缺~~serialPort1.Open();
    while(checkBox1.Chekced){
        serialPort1.Write(textBox1.Text);
    }
    serialPort1.Close();
      

  5.   

    if (checkBox1.Checked == true) 
                { 
                    serialPort1.Open(); 
                    do 
                    { 
                        Write(textBox1.Text); 
                    } 
                    while (1); 
                } 
      

  6.   


    这样不行了,while不能判断1的对错
      

  7.   

    如果你这个代码是写在CheckStateChanged(是不是这个名字不记得了)事件处理中,那肯定会一直阻塞,
    建议用多线程,把这个代码放在另一个线程中,在CheckStateChanged事件的处理代码中启动线程(如果Checked则启动否则不处理),
    当你鼠标点了CheckBox取消了选择状态后,线程会自己退出