C# Windows フォーム間のデータ交換: ベスト プラクティス
マルチフォーム C# アプリケーションでは、フォーム間のデータ共有が頻繁に必要になります。 いくつかの効果的なテクニックが存在しますが、それぞれに独自の長所と短所があります。
コンストラクターベースのデータ転送
一般的な方法では、受信フォームのコンストラクターにデータを直接渡します。コード例はこれを示しています:
<code class="language-c#">Form myFrm = new frmVoiceOver(resultingMessage); myFrm.Show();</code>
ここで、resultingMessage
は frmVoiceOver
のコンストラクターに渡され、内部に保存されます。 このアプローチにより、フォーム作成時に即時にデータにアクセスできます。
他のメソッドでのコンストラクター データへのアクセス
コンストラクターを超えたメソッドからこのデータにアクセスするには、変数が適切なスコープを持っていることを確認してください。 コンストラクター内で宣言された元のコードの loginData
変数には、btnVoiceOverNo_Click
イベント ハンドラーからアクセスできませんでした。 解決策: 変数をクラスメンバーとして宣言します:
<code class="language-c#">class frmVoiceOver : Form { private NewDataSet _loginData; public frmVoiceOver(NewDataSet loginData) { _loginData = loginData; InitializeComponent(); } private void btnVoiceOverNo_Click(object sender, EventArgs e) { // Access _loginData here. this.Close(); Form myFrm = new frmClipInformation(); myFrm.Show(); } }</code>
代替データ共有メカニズム
コンストラクターベースのデータ転送はオプションの 1 つにすぎません。 他の方法には次のようなものがあります:
最適な方法の選択は、アプリケーションの特定のニーズと複雑さによって決まります。
以上がC# で Windows フォーム間でデータを効率的に受け渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。