c#形成沟通

iTE*_*Egg 1 .net c# messaging ipc winforms

我有一个C#应用程序,它由3种形式组成:

1: Battleship Game GUI
2: Network GUI (does client/server connections)
3: Chat GUI
Run Code Online (Sandbox Code Playgroud)

首先加载表单1.当用户选择时setup network,显示表单2.

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

我希望表单2处理所有消息并将相关消息传递给相关GUI以进一步解码消息.

我还处于发展的早期阶段.目前我正在尝试使用代表在表单之间进行通信.

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

Pau*_*sik 5

ikurts,这绝对不是好习惯.您的用户界面,无论多少,都应该与通信完全无关.你应该:

  • 阅读.Net中的模型/视图/控制器,看看构建像你这样的项目的好方法
  • 阅读使用线程进行通信,应该很简单

听起来您想要遵循设置应用程序的最佳做法.你会得到很多关于这个问题的反馈,我认为所有这些都会听起来像这样.帮自己一个忙,并遵循它.并远离形式的通信逻辑!

还有一些想法:

我不确定为什么你想把它分成三个屏幕,当两个似乎合乎逻辑:1)网络设置对话框2)游戏对话,可以容纳战舰用户界面和你的聊天用户界面.此配置还可以简化您的结构,因为只需要更新一个屏幕,游戏/聊天屏幕.设置对话框就是这样.

下面是CodeProject上的线程聊天应用程序的示例,该应用程序可以很好地作为代码库来启动.我想你的战舰移动只是"特殊"的聊天消息,指定了电路板命中.

此外,这里是一个网络启用的tic tac toe游戏的例子,可能会产生关于开发客户端/服务器游戏的线索.

不要回避看似困难的事情!我的建议是首先编写一个没有UI的聊天/通信客户端,也许只是控制台输出.然后添加一个屏幕,您将看到您不必将窗口与网络结合.

祝好运!

更多链接:

这是关于MVC/MVP的一个很好的讨论,它可以启发你的架构.而这里的另一个 ......从不同的角度.