をフォームします シーン:
Windowsフォームアプリケーションは、多くの場合、1つのウィンドウの選択に応じて別のウィンドウのコントロールを入力するなど、複数のウィンドウ間のデータインタラクションが必要です。
質問:最初のウィンドウで行を選択してdatagridViewにラインを設定してコンボボックスを入力してコンボボックスをこの値で埋めることにより、2番目のウィンドウのselectedValueをセットアップする方法は?
解決策:
Windowsフォームでは、Windowsは他のC#カテゴリに似ており、Windows間の通信方法はクラス間通信方法と同じです。
最初のウィンドウの2番目のウィンドウを操作:
コンストラクト関数パラメーター転送:
2番目のウィンドウのコンストラクターに必要なパラメーターを追加します。 2番目のウィンドウインスタンスを作成すると、値はコンストラクターに渡されます。パブリック属性またはメソッド:2番目のウィンドウでパブリック属性またはメソッドを作成し、2番目のウィンドウインスタンスを作成した後にこれらの属性を設定します。 このようにして、2番目のウィンドウはこれらの値にアクセスできます。
パブリックコントロール:2番目のウィンドウに委託されたタイプの公開属性を定義します。 2番目のウィンドウインスタンスを作成するときは、カスタムアクションを使用して属性を割り当てます。 最初のウィンドウを操作する必要がある場合は、2番目のウィンドウでアクションを呼び出します。 最初のウィンドウコントロール:
最初のウィンドウの制御を直接開示し、最初のウィンドウのインスタンスを2番目のウィンドウに渡します。その後、コントロールを操作できます。 しかし、これは推奨されません、理由は上にあります。最初のウィンドウの:
最初のウィンドウは2番目のウィンドウから動作します
例3-最初のウィンドウのインスタンスを2番目のウィンドウに移動し、パブリック方法を使用します。 form2:
を作成する場合<code class="language-csharp">public partial class Form2 : Form { int selectedValue; public Form2(int value) { InitializeComponent(); selectedValue = value; } private void Form2_Load(object sender, EventArgs e) { // 加载数据 this.comboBox1.DataSource = new MyDbContext().Categories.ToList(); // 假设Categories是数据库表 this.comboBox1.DisplayMember = "Name"; this.comboBox1.ValueMember = "Id"; this.comboBox1.SelectedValue = selectedValue; } }</code>
これらの例は、さまざまな方法の実装を示しています。選択する方法は、特定のアプリケーションシナリオとコード構造に依存します。 コードのメンテナンスと読みやすさを改善するために、直接的なパブリックコントロールを回避するために、パブリック属性または方法の使用を優先することをお勧めします。
以上が最初のフォームでDatagridView行を選択して、ComboBoxのSelectedValueを2番目のフォームに設定する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。