2009-05-08 12 views
7

Z .NET Framework 2.0/3.5 TabControl, mogę programowo wybierz kartę przy użyciu właściwości SelectedTab jak pokazano w poniższym kodzie:Jak programowo wybrać kartę na karcie .NET CF TabControl?

//toggles between tabPage1 and tabPage2 
private void button1_Click(object sender, EventArgs e) 
{ 
    if (tabControl1.SelectedTab == tabPage1) 
     tabControl1.SelectedTab = tabPage2; 
    else 
     tabControl1.SelectedTab = tabPage1; 
} 

.NET Compact TabControl ramowa nie posiada SelectedTab taką właściwość jak jej odpowiednik .NET Framework. Jak więc programowo wybrać zakładkę?

Odpowiedz

21

TabControl.SelectedIndex

+0

Okazało się, że po wybraniu TabControl, nie wyświetla się poprawnie. Wygląda na to, że po wybraniu TabControl warto odświeżyć go, więc jeśli TabControl nazywa się TabForm i ma wiele kart, może to być: 'Me.TabForm.SelectedIndex = 0 Me.TabPg0.Refresh 'Where TabPg0 is nazwa karty w indeksie 0' –

-2

kod WPF, spróbuj tego:

if (tabControl1.SelectedValue == tabPage1) 
    tabControl1.SelectedValue = tabPage2; 
else 
    tabControl1.SelectedValue = tabPage1; 
+0

WPF i Compact Framework nie mieszają się, czyż nie ...? (Czy też coś mi umknęło?) – peSHIr

+0

Co więcej, to właśnie to pytanie nie działa: potrzebna jest działająca alternatywa. – peSHIr

+0

Przepraszam, brakowało mi instrukcji Compact, ale wierzę, że SelectedValue będzie działać w zwartej strukturze, brakuje SelectedTab. –

0

I zaprogramowany kod. Po kliknięciu na tabPage1, wtedy program zostanie zamknięty:

private void tabControl1_MouseClick(object sender, MouseEventArgs e) 
    { 
     if (tabControl1.SelectedTab == tabPage1) 
     { 
      MessageBox.Show("Logout!"); 
      Application.Exit(); 
     } 
    } 
0

w .NET 4 mogą korzystać

if (tabControl1.Controls[5] == tabControl1.SelectedTab) 
       MessageBox.Show("Tab 5 Is Selected"); 

LUB

if (tabpage5 == tabControl1.SelectedTab) 
     MessageBox.Show("Tab 5 Is Selected"); 
+0

To pytanie nie dotyczyło środowiska .NET 4; chodziło o .NET CF. –

0

Okazało się, że po wybraniu TabControl, robi nie wyświetla się poprawnie. Wygląda na to, że po wybraniu TabControl warto odświeżyć go. Więc, gdzie TabControl nazywa TabForm i ma wiele kart, może to być:

Me.TabForm.SelectedIndex = 0 
Me.TabPg0.Refresh   'Where TabPg0 is the name of the Tab at Index 0 
Powiązane problemy