超级简单的循环问题
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);
}
--------------------编程问答--------------------
这样不行了,while不能判断1的对错 --------------------编程问答-------------------- 如果你这个代码是写在CheckStateChanged(是不是这个名字不记得了)事件处理中,那肯定会一直阻塞,
建议用多线程,把这个代码放在另一个线程中,在CheckStateChanged事件的处理代码中启动线程(如果Checked则启动否则不处理),
当你鼠标点了CheckBox取消了选择状态后,线程会自己退出
补充:.NET技术 , C#