C# 子窗口怎么调用主窗口中的控件?

pudgeachao 2016-04-20 11:42:46
我在主窗口中有一个控件serialPort。实例化语句 serialPort spt = new serialPort();
然后主窗口有个button点击后弹出子窗口,在子窗口进行一系列的设置后,需要把这些参数通过spt.write(),发送给下位机。但是在子窗口里面不知道怎么调用spt了。。。请大神指教!最好能说明原因
...全文
565 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
nry19871012 2016-04-22
  • 打赏
  • 举报
回复
引用 6 楼 sp1234 的回复:
[quote=引用 楼主 pudgeachao 的回复:] 我在主窗口中有一个控件serialPort。实例化语句 serialPort spt = new serialPort(); 然后主窗口有个button点击后弹出子窗口,在子窗口进行一系列的设置后,需要把这些参数通过spt.write(),发送给下位机。但是在子窗口里面不知道怎么调用spt了。。。请大神指教!最好能说明原因
主窗口拥有 serialPort,子窗口发送信息给下位机?这个职责是错误的。 子窗口应该设置一些参数,而这些参数只是简单的string、int之类的属性,主窗口监听子窗口的(自定义)“submit”事件来设置spt,然后主窗口发送信息给下位机。也就是所,子窗口根本不知道任何spt,它不过是几个字段的编辑窗,跟串口实际对象无关。[/quote] 同上
  • 打赏
  • 举报
回复
比如说你有一个编辑“订单”的窗口,当用户录入收货单位时需要从下拉列表中选择单位(然后自动填充地址、联系人、电话,等等信息)。假设原来的数据库中没有“联系单位”文档,那么你可能就需要弹出一个新的页面来为联系单位建档,然后焦点又回到主窗口。 你能说“要把订单传给联系单位新增档案窗口”吗?这不是自己增加复杂性嘛。 子窗口就是干点简单的参数录入工作,它根本不知道什么spt,它的职责只是编辑几个参数,而不是实际去操作spt。
  • 打赏
  • 举报
回复
引用 楼主 pudgeachao 的回复:
我在主窗口中有一个控件serialPort。实例化语句 serialPort spt = new serialPort(); 然后主窗口有个button点击后弹出子窗口,在子窗口进行一系列的设置后,需要把这些参数通过spt.write(),发送给下位机。但是在子窗口里面不知道怎么调用spt了。。。请大神指教!最好能说明原因
主窗口拥有 serialPort,子窗口发送信息给下位机?这个职责是错误的。 子窗口应该设置一些参数,而这些参数只是简单的string、int之类的属性,主窗口监听子窗口的(自定义)“submit”事件来设置spt,然后主窗口发送信息给下位机。也就是所,子窗口根本不知道任何spt,它不过是几个字段的编辑窗,跟串口实际对象无关。
t_kong 2016-04-22
  • 打赏
  • 举报
回复
想工廠模式那樣,把主界面用this,傳給子界面?
xian_wwq 2016-04-22
  • 打赏
  • 举报
回复
引用 3 楼 pudgeachao 的回复:
可能我描述的不清不楚了,不是子窗口父窗口mdiparent的关系,就是弹出一个新窗口。。新窗口怎么调用原来窗口的串口控件???
可以把串口控件作为构造函数参数传入
pudgeachao 2016-04-22
  • 打赏
  • 举报
回复
可能我描述的不清不楚了,不是子窗口父窗口mdiparent的关系,就是弹出一个新窗口。。新窗口怎么调用原来窗口的串口控件???
exception92 2016-04-20
  • 打赏
  • 举报
回复
子窗口.MdiParent.方法名称。
兵工厂三剑客 2016-04-20
  • 打赏
  • 举报
回复
将spt设置成public级别。 在点击button时,show出子窗口的时候,代码为:子窗口.show(this)。 在子窗口相关代码中用 ((你的主窗口)this.Owner).spt就可以了。

110,553

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧