2014-12-16 5 views
0

시행 착오를 일으켜 문제를 일으킨 이유를 묻는 질문을 개정합니다. 답변에 대한 힌트는 양식이로드 된 후에 발생하는 것으로 나타났습니다. 나는 tabControl1.SelectedIndex = 1 라인 설정을 발견했다. tabPage2 색인도 1입니다. 왜 tabPage2를 선택하지 않았습니까? 1에서 0으로 변경하면 모든 것이 올바르게 표시됩니다.시작시 표시 할 원하는 tabPage 및 양식을 가져올 수 없습니다.

tabControl 및 SelectedIndex 사용에 대한 백서 또는 자습서를 찾을 수 없으므로 누군가이 방법에 대해 알려줄 수 있습니까?

private void Form1_Load(object sender, EventArgs e) 
     { 
      getRegions(); 
      tabControl1.SelectedIndex = 1; 

나는 tabControl1에 10 개의 tabPages가있는 Windows 폼이 있습니다. 요구 사항이 변경되면 2 &을 제외한 모든 항목이 필요합니다. 8. 시작시 탭 페이지, tabPage2 및 양식을 제거하기 전에 제거하십시오. 문제없이 3,4,5,6,7,9,10을 제거 할 수 있습니다 (1,2,8 개 남음). tabPage1을 제거하면 시작시 표시되는 tabPage 및 양식은 tabPage8입니다. 그것은 tabPage2 였고 그렇게 유지하고 싶습니다.

나는 이것을 2 주 동안 켜고 껐다. 이 점을 설명하는 기사 나 질문을 찾을 수없는 것 같습니다. 내가 찾은 것은 this.tabControl1.SelectedTab = tabPage2를 추가하는 여러 가지 제안이었습니다. 어떤 것도하지 않는 것 같습니다.

무엇이 원인 일 수 있으며 어떻게해야합니까? 매우 자주 몰래 때문에 모든 Windows 수 도자기의

// tabControl1 
      // 
      this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
      | System.Windows.Forms.AnchorStyles.Left) 
      | System.Windows.Forms.AnchorStyles.Right))); 
      this.tabControl1.Controls.Add(this.tabPage2); 
      this.tabControl1.Controls.Add(this.tabPage8); 
      this.tabControl1.Location = new System.Drawing.Point(13, 27); 
      this.tabControl1.Name = "tabControl1"; 
      this.tabControl1.SelectedIndex = 1; 
      this.tabControl1.Size = new System.Drawing.Size(963, 483); 
      this.tabControl1.TabIndex = 1; 
      this.tabControl1.SelectedTab = tabPage2; 

     // tabPage1 
     // 
     this.tabPage1.Location = new System.Drawing.Point(4, 22); 
     this.tabPage1.Name = "tabPage1"; 
     this.tabPage1.Padding = new System.Windows.Forms.Padding(3); 
     this.tabPage1.Size = new System.Drawing.Size(955, 457); 
     this.tabPage1.TabIndex = 0; 
     this.tabPage1.Text = "Region Overall Status"; 
     this.tabPage1.UseVisualStyleBackColor = true; 
     // 


     // tabPage2 
     // 
     this.tabPage2.Controls.Add(this.lstBuildList); 
     this.tabPage2.Controls.Add(this.label9); 
     this.tabPage2.Controls.Add(this.label8); 
     this.tabPage2.Controls.Add(this.lblFileLookUp); 
     this.tabPage2.Controls.Add(this.btnFileLookUp); 
     this.tabPage2.Controls.Add(this.cbRegion); 
     this.tabPage2.Controls.Add(this.tabControl2); 
     this.tabPage2.Controls.Add(this.tvFileMan); 
     this.tabPage2.Controls.Add(this.txtFileLookUp); 
     this.tabPage2.Controls.Add(this.cbRegionSites); 
     this.tabPage2.Location = new System.Drawing.Point(4, 22); 
     this.tabPage2.Name = "tabPage2"; 
     this.tabPage2.Padding = new System.Windows.Forms.Padding(3); 
     this.tabPage2.Size = new System.Drawing.Size(955, 457); 
     this.tabPage2.TabIndex = 1; 
     this.tabPage2.Text = "Build Attribute Maps from Vista Files"; 
     this.tabPage2.UseVisualStyleBackColor = true; 
     this.tabPage2.Click += new System.EventHandler(this.tabPage2_Click); 



     // tabPage8 
     // 
     this.tabPage8.Location = new System.Drawing.Point(4, 22); 
     this.tabPage8.Name = "tabPage8"; 
     this.tabPage8.Padding = new System.Windows.Forms.Padding(3); 
     this.tabPage8.Size = new System.Drawing.Size(955, 457); 
     this.tabPage8.TabIndex = 0; 
     this.tabPage8.Text = "Edit Attribute Map/ Create SQL Tables from Attribute Map"; 
     this.tabPage8.UseVisualStyleBackColor = true; 
     this.tabPage8.Click += new System.EventHandler(this.tabPage8_Click); 
     this.tabControl1.SelectedTab = tabPage2; 
     // 

답변

0

첫째는 기대하지 않았다 변화를 디자이너 양식 (더 필요한 경우 정말 붙여 필요한 코드를 모르는, 알려주세요) 변경할 때. :)

시도해 볼 수있는 한 가지 방법은 Initial.typeControl1.SelectedTab을 InitializeComponent 메서드 외부로 이동하는 것입니다 (사용자가 가지고 있다고 가정). 때때로 BeginInit/EndInit 호출에 이상한 부작용이있을 수 있습니다.

2

시작시 표시 할 InitializeComponent 나 Form_Load 다음에 탭 페이지를 선택할 수 있습니다.

여기에 내가 당신의 디자이너에 어떤 코드를 작성하지 마십시오

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
      //Select tabpage after initialize 
      tabControl1.SelectedTab = tabPage3; 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      //You can select it at form load or at some other action also like a button click 
      //tabControl1.SelectedTab = tabPage3; 
     } 
    } 
} 

을 테스트 한 샘플 코드입니다. 항상 InitializeComponent 호출 후에 작성하십시오.

+0

거의 완료되었습니다. 프로젝트의 작성자는 초기화 컴포넌트 이후에 프로젝트를 작성했습니다. 필자가 당황하게하는 것은 tabPage2의 인덱스가 1입니다. 저는 0으로 설정하고 모든 것이 올바르게 시작됩니다. private void Form1_Load (개체 보낸 사람, EventArgs e) { getRegions(); tabControl1.SelectedIndex = 1; –

관련 문제