问题描述
if(checkBox1.Checked==true){serialPort1.Open();do{Write(textBox1.Text);}while(checkBox1.Checked==false);}serialPort1.Close();我有一个checkbox1,我想让当checkbox选中时,一直向串口serialport1写东西现在只能写一次,我不知道改怎么改,或者用别的什么语句?
解决方案
解决方案二:
while(checkbox1.Checked){Write(.....);}
解决方案三:
if(checkBox1.Checked==true){serialPort1.Open();do{Write(textBox1.Text);}while(checkBox1.Checked==true);}serialPort1.Close();
解决方案四:
你这种情况别用do..while,因为serielPort1.Open这里可能会耗时,如果你这个代码在另一个线程,在Open的时候,checkbox被取消了Checked状态,那接下来的do..while会让Write至少执行一次,建议还是用While循环
解决方案五:
serialPort1.Open();while(checkBox1.Checked==true){serialPort1.Write(textBox1.Text);while(checkBox1.Checked==false);}serialPort1.Close();这样调试,循环是死的,串口一直在发数,没办法改变checkbox1的值了
解决方案六:
我是说“如果你这个代码在另一个线程”
解决方案七:
哥们你语法真的真的还很欠缺~~serialPort1.Open();while(checkBox1.Chekced){serialPort1.Write(textBox1.Text);}serialPort1.Close();
解决方案八:
刚学,超级菜的问题。不好意思,让您笑话了
解决方案九:
数是一直发出去但是无法让他停止,还是没有解决。困惑中
解决方案十:
if(checkBox1.Checked==true){serialPort1.Open();do{Write(textBox1.Text);}while(1);}
解决方案十一:
引用9楼liulcster的回复:
if(checkBox1.Checked==true){serialPort1.Open();do{Write(textBox1.Text);}while(1);}
这样不行了,while不能判断1的对错
解决方案十二:
如果你这个代码是写在CheckStateChanged(是不是这个名字不记得了)事件处理中,那肯定会一直阻塞,建议用多线程,把这个代码放在另一个线程中,在CheckStateChanged事件的处理代码中启动线程(如果Checked则启动否则不处理),当你鼠标点了CheckBox取消了选择状态后,线程会自己退出