数日前にインターネットで見つけた情報では、フォーム全体をタブに読み込むことができます(前回の記事を参照)。これは非常に簡単に実装でき、マルチウィンドウ表示もはるかに便利です。
すべてのウィンドウを追加した後、クエリパラメータを渡すなど、メインフォーム上のパラメータをタブに読み込まれたフォームに渡すことができるかどうか疑問に思います。
1. メインフォーム Form1、サブフォーム Form2 の 2 つを作成します Form1 の textBox1 を public に設定し、textBox1 を直接渡すこともできます。 String まず、前の記事のコードを使用して、form1 のタブに form2 を追加します。ここでは、generatefm ボタンがクリックされたときに実行されるイベントを設定しますprivate void generatefm_Click(object sender, EventArgs e) { tbMobile = new TabPage("中国"); tbMobile.Name = "tbmobile"; tabControl1.Controls.Add(tbMobile); Form form2 = new Form2(textBox1); //传递textBox1过去 // Form2 form = new Form2(); form2.TopLevel = false; form2.BackColor = Color.White; form2.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; form2.FormBorderStyle = FormBorderStyle.None; form2.Show(); tbMobile.Controls.Add(form2); tabControl1.SelectedIndex = 2; }
Form2 のコンストラクターを使用してパラメーターを受け取ります。
public partial class Form2 : Form { public Form2() { InitializeComponent(); } public Form2(TextBox ts) { InitializeComponent(); textBox2.Text = ts.Text; }}
このように、form2を読み込む際に、form1に入力した内容を直接渡すことができます。 これが初期状態です。入力内容を変更し、読み込み後に form2 の内容を変更する場合は、次の手順に進みます。
private void button1_Click(object sender, EventArgs e) { form2.textBox2.Text = textBox1.Text; } private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) { form2.textBox2.Text = textBox1.Text; }ここで使用する from2 変数は、form1 の先頭で宣言する必要があります。 タブ内の対応するコードは、単純な変更が必要です。 、Form1 の最終コード:
public partial class Form1 : Form { private TabPage tbMobile = null; private TabPage tbUnion = null; Form2 form2 = null; //先在这里声明,便于加载后引用 public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { form2.textBox2.Text = textBox1.Text; //这里就可以引用了,form2的textBox2必须先设置成public } private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) { form2.textBox2.Text = textBox1.Text; //切换选项卡时也获取最新的输入参数 } private void generatefm_Click(object sender, EventArgs e) { tbMobile = new TabPage("中国"); tbMobile.Name = "tbmobile"; tabControl1.Controls.Add(tbMobile); form2 = new Form2(textBox1); // Form2 form = new Form2(); form2.TopLevel = false; form2.BackColor = Color.White; form2.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; form2.FormBorderStyle = FormBorderStyle.None; form2.Show(); tbMobile.Controls.Add(form2); tabControl1.SelectedIndex = 2; } }この例では、一方向のパラメーター転送のみを実装します。次に、パラメーターを読み込まれたフォームのメイン フォームに渡す必要がある場合はどうすればよいでしょうか。研究を続けて、何か良い方法がないか話し合いましょう。
以上がC# TabContralタブに表示フォームをロードした後、一方向のパラメータ転送テストのコード例を実装します(写真)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。