Heim >Backend-Entwicklung >C#.Net-Tutorial >Nachdem Sie das Anzeigeformular auf der Registerkarte „C# TabContral' geladen haben, implementieren Sie ein Testcodebeispiel für die unidirektionale Parameterübertragung (Bild).

Nachdem Sie das Anzeigeformular auf der Registerkarte „C# TabContral' geladen haben, implementieren Sie ein Testcodebeispiel für die unidirektionale Parameterübertragung (Bild).

黄舟
黄舟Original
2017-03-10 14:18:382377Durchsuche

Die Informationen, die ich vor ein paar Tagen online gefunden habe, können das gesamte Formular in einen Tab laden (siehe vorherigen Artikel). Dies ist sehr einfach zu implementieren und die Anzeige in mehreren Fenstern ist auch viel komfortabler.

Nachdem ich alle Fenster hinzugefügt habe, frage ich mich, ob ich Parameter im Hauptformular an das auf der Registerkarte geladene Formular übergeben kann, beispielsweise die Übergabe von Abfrageparametern.

1. Erstellen Sie 2 neue Formulare: Hauptformular Form1, Unterformular Form2

Setzen Sie textBox1 auf Form1 auf public, um die direkte Übergabe von textBox1 zu erleichtern.

Fügen Sie zunächst form2 hinzu, indem Sie den Code im vorherigen Artikel verwenden Klicken Sie auf die Registerkarte von form1 und legen Sie fest, dass dieses Ereignis ausgeführt wird, wenn auf die Schaltfläche „generatefm“ geklickt wird

 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;
        }


Verwenden Sie den Konstruktor in Form2, um Parameter zu akzeptieren:

    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        public Form2(TextBox ts)
        {
            InitializeComponent();

            textBox2.Text = ts.Text;
        }

}


Auf diese Weise kann der in Formular1 eingegebene Inhalt direkt beim Laden von Formular2 übergeben werden. Dies ist der Ausgangszustand. Wenn Sie den Eingabeinhalt nach dem Laden ändern und gleichzeitig den Inhalt in form2 ändern möchten, fahren Sie fort:

      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;          
        }

Die hier verwendete Variable from2 muss am Anfang von form1 deklariert und entsprechend hinzugefügt werden. Der Code in der Registerkarte muss nur geändert werden. Der endgültige Code von 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;
        }
    }

Dieses Beispiel implementiert nur die unidirektionale Parameterübertragung, wenn wiederum die Parameter im geladenen Zustand übergeben werden müssen Formular Was ist mit dem Hauptformular? Recherchieren Sie weiter und lassen Sie uns besprechen, ob Sie gute Methoden haben.

Das obige ist der detaillierte Inhalt vonNachdem Sie das Anzeigeformular auf der Registerkarte „C# TabContral' geladen haben, implementieren Sie ein Testcodebeispiel für die unidirektionale Parameterübertragung (Bild).. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn