簡體   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