며칠 전에 온라인에서 찾은 정보는 전체 양식을 탭에 로드할 수 있습니다(이전 기사 참조). 이는 구현하기가 매우 쉽고 다중 창 표시도 훨씬 더 편리합니다.
창을 모두 추가한 후 쿼리 매개변수 전달 등 기본 폼의 매개변수를 탭에 로드된 폼으로 전달할 수 있는지 궁금합니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!