2010-12-16 4 views
1

콘텐츠를 한 번만 열 수있는 탭 컨트롤을 만들고 싶습니다. 열린 각 항목은 컨테이너가 아직 표시되지 않았는지 확인해야합니다. 사용하려는 메서드는 bool TabControl.TabPages.ContainsKey(string key) 메서드라고 생각하지만 항상 false 값을 반환합니다.탭 컨트롤의 ContainsKey() 메서드는 무엇과 비교됩니까?

탭 컨트롤과 동기화 된 별도의 목록에 개체를 저장하는 방법을 만들었지 만 매우 잘못된 느낌입니다. 컨트롤의 TabPages 속성에 목록이 있으므로 쿼리를 쿼리 할 수 ​​있어야합니다.

속성이 누락 되었습니까? 이 방법에 대한 내 기대와 그것이 정확히 무엇을 수행하고 있는가? 열린 탭을 올바르게 식별하려면 어떻게합니까? 모든 것을 말해

private void _fillTabControl() 
{ 
    List<string> keys = new List<string>() { "one", "two" }; 
    foreach (string key in keys) 
     _addTab(key); 

    bool alreadyOpened = tabControl.TabPages.ContainsKey(keys[0]); 
} 
private void _addTab(string key) 
{ 
    TextBox textBox = new TextBox(); 
    textBox.Text = key; 

    TabPage tab = new TabPage(); 
    tab.Text = key; 

    tab.Controls.Add(textBox); 
    tabControl.TabPages.Add(tab); 
} 

답변

1

기타 문서를 : 여기에

는 내가 무엇을하고있어 유사하다 몇 가지 예제 코드입니다

는 "이름 숙박 시설은 TabPage에 대한 키에 해당 TabControl.TabPageCollection. "

당신은 텍스트 속성을 사용하고, 당신은

tab.Name = "MyName"; 

다음

tabControl.TabPages.ContainsKey("MyName"); 

는 true를 돌려줍니다 설정해야합니다;

+0

남자 ... 순간 실명. 감사. – curtisthibault

관련 문제