【问题标题】:Default value in textbox文本框中的默认值
【发布时间】:2016-04-28 09:51:05
【问题描述】:

我正在从串口读取数据。

  1. 我的文本框应该显示值 9600 作为我的默认波特率 当我运行程序时串行端口。
  2. 如果我输入一个新值 (5200),它应该替换默认值。 有人可以帮忙吗?

    `private void buttonStart_Click(object sender, EventArgs e)
    {
    
         serialPort1.BaudRate = Convert.ToInt32(textBox1.Text);
    
         serialPort1.Open();
    
    }  `
    

    Picture

【问题讨论】:

  • 你想设置什么,textBox的值还是serialPort的BaudRate?
  • 感谢您的评论。我正在尝试设置文本框的值。
  • 那么在这种情况下,你的赋值是错误的,你应该像这样设置文本框的值textBox1.Text = Convert.ToInt32(serialPort1.BaudRate);
  • TextBox 控件不能输入新值,这很奇怪。此 TextBox 属性 Enabled 是否设置为“true”?也许您将属性 ReadOnly 设置为“true”?
  • 首先我希望我的文本框默认显示一个值,例如 textBox1.Text="9600";在第二步中,我会将 textBox 值分配给 serialport。

标签: c# winforms serial-port


【解决方案1】:

根据我的经验,我可以告诉你一件事——做这样的事情是非常危险的。您应该先关闭连接,然后以不同的波特率重新打开,因为您的设备可能会简单地忽略您的请求,但系统驱动程序不会......这样的操作可能会导致缓冲区中的无效字符并执行意外的行为。我从未在我的应用程序中进行过动态波特率更改,但如果系统以某种方式锁定您的 TextBox 控件作为某些连接设置的来源并以这种方式保留更改,我不会感到惊讶。 尝试关闭连接,然后更改您的 TextBox 值。

希望对你有所帮助。

【讨论】:

  • 真的很抱歉,误会你了。我的意思是当我运行程序而不是 COM 端口波特率时,我应该可以选择更改 textBox 的文本。文本框的文本显示一个字符串值 (9600),我稍后可以将其转换为 int 形式并分配给 SeriaPort 的波特率。
  • 我现在明白了 - 你想在连接开始之前设置 TextBox 值。好的。您是否检查过我上面提到的“已启用”和“只读”属性?
  • 感谢您表现出极大的耐心并推动我朝着正确的方向前进 :) 它终于奏效了 :) 非常感谢。
  • 很高兴听到这个消息。请将我的答案标记为解决方案。谢谢。
猜你喜欢
  • 2011-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-31
相关资源
最近更新 更多