2013-02-10 3 views
0
private void referenceDesk_DoubleClick(object sender, EventArgs e) 
{ 
    tabControl1.TabPages.Add(new TabPage("Donkey Kong")); 
} 

이 사용 할 tabControl1.Modifier 유형 명령이 없으며, 또한 사용할 수 없습니다런타임에 컨트롤의 수정자를 어떻게 설정합니까?

new public TabPage(""); 
+0

달성하고자하는 작업은 무엇입니까? – abatishchev

+0

tabControl1이 이미 public으로 설정되어 있습니다. tControl1.TabPages [index]가 추가 된 페이지를 public으로 설정하고 싶습니다. – yumyum

+0

tabControl1이 폼 디자이너로 만들어지고 수정자를 변경 하시겠습니까? – abatishchev

답변

1

Modifiers 디자인 타임 속성은 수정할 개체의 멤버 생성을 제어합니다. 나중에 변경할 수있는 것이 아닙니다. 탭 컨트롤에 탭 페이지를 추가하고 나중에 변경할 수 있기를 원하면 클래스 멤버를 정의하고 적절한 액세스 한정자를 할당하십시오.

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

    private List<TabPage> tabPages; 

    private void referenceDesk_DoubleClick(object sender, EventArgs e) 
    { 
     tabPages = new List<TabPage>(); 
     tabPages.Add(new TabPage("First")); 
     tabPages.Add(new TabPage("Second")); 
     foreach (var tab in tabPages) 
      tabControl1.TabPages.Add(tab); 
    } 

    .... 
} 
+0

목록 형식으로해야합니까? 이것은 가능한가? – yumyum

+0

왜 안 되니? 수정 됨. –

+0

은 아마도 동적 키워드를 사용해야합니까? 페이지 수가 너무 많아 런타임에 작성해야합니다. @ MD.Unicorn 개인 목록 tabPages는 각 페이지에 비공개로 적용됩니까? – yumyum

0

디자이너 코드가 비주얼 스튜디오마다에 의해 다시 작성됩니다로 사용자가 수정할 수 안된다 디자이너에서 양식을 변경합니다 (사용자가 발견 한대로).

컨트롤 선언 및 초기화를 비 디자이너 코드 파일로 이동하는 방법 중 하나입니다. 그러나 컨트롤이 더 이상 디자이너에 표시되지 않습니다.

+0

주제를 벗어났습니다. 공개 수정자를 설정해야하는 컨트롤이 추가되었습니다. 추가 된 새로운 TabPages에서 어떻게 이것을 수행합니까? – yumyum