デリゲートを使用した Windows フォーム間でのデータの受け渡し
Windows フォーム アプリケーションで複数のフォームを操作する場合、多くの場合、データを受け渡すことが必要になります。彼らの間で。これを達成するための一般的なアプローチは、デリゲートを使用することです。デリゲートを使用してデータ受け渡しを実装する方法は次のとおりです。
デリゲートの作成
まず、データ転送のコールバック メソッドとして機能するデリゲートを作成する必要があります。 C# では、これは次のように実行できます。
public delegate void PageInfoHandler(object sender, PageInfoEventArgs e);
このデリゲートは、送信者オブジェクト (通常はデータを送信するフォーム) とイベント引数オブジェクト (実際のデータを含む) の 2 つのパラメーターを取るメソッドを宣言します。データ).
メイン内でのデリゲートの使用
フォームでは、デリゲートのインスタンスを作成し、子フォームにデータを渡したいときにいつでもイベントを発生させることができます。例:
public partial class MainForm : Form { // Declare the delegate instance public event PageInfoHandler PageInfoRetrieved; private void toolStripBtnSettings_Click(object sender, EventArgs e) { PageInfoEventArgs args = new PageInfoEventArgs(SomeString); this.OnPageInfoRetrieved(args); SettingsForm settingsForm = new SettingsForm(); settingsForm.ShowDialog(); } private void OnPageInfoRetrieved(PageInfoEventArgs args) { if (PageInfoRetrieved != null) PageInfoRetrieved(this, args); } }
データの取得
子フォーム (この場合は、SettingsForm) 内で、デリゲート イベントをサブスクライブして、データ。これは、子フォームのコンストラクターまたはその初期化コードで実行できます。例:
public class SettingsForm : Form { public SettingsForm() { // Subscribe to the delegate event if (MainForm.PageInfoRetrieved != null) MainForm.PageInfoRetrieved += new PageInfoHandler(OnPageInfoRetrieved); } private void OnPageInfoRetrieved(object sender, PageInfoEventArgs e) { // This method will be called when the PageInfoEventArgs is raised // in the main form. You can access the data from the event argument here. // ... } }
データの使用
子フォームでデータを取得したら、提供されたイベント引数を使用して実際のデータにアクセスできます。 。この例では、データは PageInfoEventArgs オブジェクトのプロパティとして渡されます。たとえば、次のように使用できます。
// In the SettingsForm private void DisplayData() { // Get the data from the event arguments string data = e.Data; // Display or use the data in the child form // ... }
次の手順に従うことで、デリゲートを使用して複数の Windows フォーム間でデータを効率的に受け渡すことができ、アプリケーション内のフォーム間の通信とデータ交換が可能になります。
以上がデリゲートを使用して Windows フォーム間でデータを渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。