【问题标题】:C# accessing serial port from different formsC#从不同形式访问串口
【发布时间】:2012-01-26 20:04:32
【问题描述】:

我有一个打开串行端口 (COM1) 的 MdiParent 表单。我有一个子窗体,单击按钮即可启动计时器,并且计时器每隔几秒钟触发一次。计时器调用一个单独的类(我们称之为 commClass)中的方法,该方法假定读取和写入之前打开的 COM1 端口。

Mdi 和 COM1 之间的通信工作正常。定时器也是如此,触发事件。 问题是从串口写入/读取。

谁能告诉我一个正确的 OOP 方式来从我的 commClass 访问我在 Mdi 表单上定义的串行端口? 几行代码解释在 Mdi、child 和 commClass 上做什么将不胜感激。

谢谢!

【问题讨论】:

  • 正确的 OOP 解决方案是 封装。该 SerialPort 对象属于 commClass 类,而不是表单。避免让设计师的便利束缚你的风格。

标签: c# winforms oop serial-port


【解决方案1】:

如果您需要从不同的表单访问端口,更好的方法是创建一个静态助手类来处理读/写任务并从需要它的表单中使用该类。

如果该类需要每隔几秒钟激活一次,那么您也应该在帮助类本身中实现计时,并定义一些方法,例如启动计时器的Start() 方法,但尽量不要公开实现细节到forms。 而是提供一些方法来抽象读/写任务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-14
    相关资源
    最近更新 更多