繁体   English   中英

C#表格沟通

[英]c# forms communication

我有一个包含3种形式的C#应用​​程序:

 1: Battleship Game GUI 2: Network GUI (does client/server connections) 3: Chat GUI 

首先加载表格1。 当用户选择setup network ,将显示表格2。

当用户选择发送聊天或接收到聊天时,将显示聊天。

我希望Form 2处理所有消息并将相关消息传递给相关GUI,以进一步对消息进行解码。

我仍处于开发初期。 目前,我正在尝试使用委托在表单之间进行通信

这是最好的方法吗? 关于应用程序组件之间相互发送消息的最佳实践是什么?

ikurts,这绝对不是一个好习惯。 您的UI,无论有多少,都应该与通信完全无关。 你应该:

  • 在.Net中阅读模型/视图/控制器,以了解构建类似您的项目的好方法
  • 阅读有关使用线程进行通信的内容,应该很简单

听起来您想遵循最佳做法来设置您的应用。 我想您将在这个问题上得到很多反馈,所有这些听起来都会像这样。 帮自己一个忙,并遵循它。 并远离表单中的通信逻辑!!!

还有一些想法:

我不确定为什么要在两个看起来合乎逻辑的情况下将其分为三个屏幕:1)网络设置对话框2)可以同时容纳战舰UI和聊天UI的游戏对话框。 这种配置还可以简化您的结构,因为只需要更新一个屏幕,即游戏/聊天屏幕。 设置对话框就是这样。

这是CodeProject上的线程聊天应用程序的示例,该应用程序将很好地用作服务器代码库。 我想象您的战舰移动只是指定板命中的“特殊”聊天消息。

另外,这是一个基于网络的井字游戏的示例,该游戏可能会提供有关开发客户端/服务器游戏的线索。

不要回避似乎困难的地方! 我的建议是首先编写一个没有UI的聊天/通讯客户端,也许只是控制台输出。 然后添加一个屏幕,您将看到不必将窗口与网络内容关联。

祝好运!

更多链接:

这是有关MVC / MVP的精彩讨论 ,可能会启发您的体系结构。 还有另一个 ……从另一个角度来看。

您应该将逗号分隔为不同的类(而不是在窗体中)。

但是,为了使表单彼此“同步”,可以使用c#事件(和委托来处理它们)来通知一种表单另一种表单已经发生了事情。 您已经在使用事件来处理所有表单操作(鼠标单击等),因此您应该对它的工作方式有一个基本的了解,并且网上有很多关于“ c#事件”和“ c#事件处理”的文章。 ”(为您提供一些搜索字词),它将为您提供更多信息,因此在此不再赘述。 事件的优点是系统保持松散耦合,任何人都可以订阅它们,因此将来添加第四种表格并使其“收听”所需的信息确实非常容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM