>  기사  >  백엔드 개발  >  C# TabContral 탭에서 표시 폼을 로딩한 후 단방향 매개변수 전송 테스트 코드 예제 구현(그림)

C# TabContral 탭에서 표시 폼을 로딩한 후 단방향 매개변수 전송 테스트 코드 예제 구현(그림)

黄舟
黄舟원래의
2017-03-10 14:18:382276검색

며칠 전에 온라인에서 찾은 정보는 전체 양식을 탭에 로드할 수 있습니다(이전 기사 참조). 이는 구현하기가 매우 쉽고 다중 창 표시도 훨씬 더 편리합니다.

창을 모두 추가한 후 쿼리 매개변수 전달 등 기본 폼의 매개변수를 탭에 로드된 폼으로 전달할 수 있는지 궁금합니다.

1. 2개의 새 양식 만들기: 기본 양식 Form1, 하위 양식 Form2

Form1의 textBox1을 공개로 설정하여 textBox1을 직접 전달할 수도 있습니다.

먼저 이전 기사의 코드를 사용하여 form2를 추가하세요. form1의 탭에서 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;
        }

}


이렇게 하면 form1에 입력한 내용을 form2 로딩 시 바로 전달할 수 있는 초기 상태입니다. 로딩 후 입력 내용을 수정하고 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.