none
TabItem bei Ereignis öffnen RRS feed

  • Frage

  • gegeben

    <TabControl>

    <TabItem/>

    <TabItem/>

    </TabControl>

    In der Ansicht ist normalerweise das erste TabItem aktiviert.

    Ich möchte beim Ereignis z.B. click das zweite Tabitem aktivieren bzw. ansehen.

    Wie geht das?


    Es geht mir um WPF(XAML) Visual Studio Proff. 2010, VisualBasic, Win7 und verständliche Hilfe. Als Quelle nutze ich oft msdn Hilfe.

    Dienstag, 12. Februar 2013 08:18

Antworten

  • Hi,
    das TabControl bietet mehrere Möglichkeiten mit Selected... Wenn Du über den Index gehen willst, dann nimm einfach SelectedIndex=1. Damit aktivierst Du den 2. Reiter.
     
    --
    Peter Fleischer
    • Als Antwort markiert Thomas2705 Dienstag, 12. Februar 2013 15:13
    Dienstag, 12. Februar 2013 09:14
  • Hallo,

    die Frage ist für mich etwas verwirrend aber ich versuche mal das ganze zu erklären und dann ggf. eine Lösung herbeizuführen.

    Das TabControl ist irgendwann von ItemsControl abgeleitet. d.h. wenn man kurz drüber nachdenkt muss es eine Collection geben, jene die TabItem beinhaltet. D.h. -> logische Schlussfolgerung: "Durch anklicken (Click-Event) des TabItem wird das entsprechende TabItem innerhalb des TabControl selektiert bzw. dargestellt".

    So viel zur technischen Basis und grundlegenden Erklärung.

    Wenn Du jetzt versucht ein TabItem mittels Code manuell zu selektieren, z.B. durch ein Click-Event auf einen anderen Button oder durch ein Load Event eines Controls oder des Window, dann gilt wieder o.g. Logik. Greife auf die ItemsCollection des TabControl zu und übergebe entweder per "Referenz" das entsprechende TabItem oder den Index des TabItem per "Integer".

    Beispiel:

    this.MeinTabControl.SelectedItem = this.MeinTabItem;
    this.MeinTabControl.SelectedIndex = 1;

    Damit das Beispiel funktioniert musst du dem TabControl bzw. dem TabItem das du selektieren möchtest einen Name geben bzw. die x:Name Eigenschaft festlegen damit du per Referenz darauf zugreifen kannst.

    vG

    • Als Antwort markiert Thomas2705 Dienstag, 12. Februar 2013 15:13
    Dienstag, 12. Februar 2013 08:51

Alle Antworten

  • Hallo,

    die Frage ist für mich etwas verwirrend aber ich versuche mal das ganze zu erklären und dann ggf. eine Lösung herbeizuführen.

    Das TabControl ist irgendwann von ItemsControl abgeleitet. d.h. wenn man kurz drüber nachdenkt muss es eine Collection geben, jene die TabItem beinhaltet. D.h. -> logische Schlussfolgerung: "Durch anklicken (Click-Event) des TabItem wird das entsprechende TabItem innerhalb des TabControl selektiert bzw. dargestellt".

    So viel zur technischen Basis und grundlegenden Erklärung.

    Wenn Du jetzt versucht ein TabItem mittels Code manuell zu selektieren, z.B. durch ein Click-Event auf einen anderen Button oder durch ein Load Event eines Controls oder des Window, dann gilt wieder o.g. Logik. Greife auf die ItemsCollection des TabControl zu und übergebe entweder per "Referenz" das entsprechende TabItem oder den Index des TabItem per "Integer".

    Beispiel:

    this.MeinTabControl.SelectedItem = this.MeinTabItem;
    this.MeinTabControl.SelectedIndex = 1;

    Damit das Beispiel funktioniert musst du dem TabControl bzw. dem TabItem das du selektieren möchtest einen Name geben bzw. die x:Name Eigenschaft festlegen damit du per Referenz darauf zugreifen kannst.

    vG

    • Als Antwort markiert Thomas2705 Dienstag, 12. Februar 2013 15:13
    Dienstag, 12. Februar 2013 08:51
  • Hi,
    das TabControl bietet mehrere Möglichkeiten mit Selected... Wenn Du über den Index gehen willst, dann nimm einfach SelectedIndex=1. Damit aktivierst Du den 2. Reiter.
     
    --
    Peter Fleischer
    • Als Antwort markiert Thomas2705 Dienstag, 12. Februar 2013 15:13
    Dienstag, 12. Februar 2013 09:14
  • So sieht es aus:

    <Grid>
    <Button Click="but1_Click" Name="but1"></Button>
    
          <TabControl Margin="0,50,0,0" Name="TabControl1">
             <TabItem Name="Tab0" Height="50" TabIndex="0"/>
             <TabItem Name="Tab1" TabIndex="1"/>
             <TabItem Name="Tab2" TabIndex="2" Header="2"/>
             <TabItem Name="Tab3" TabIndex="3"/>
         </TabControl>
    </Grid>

    Private Sub but1_Click(sender As System.Object, e As System.Windows.RoutedEventArgs)
            'Me.TabControl1.SelectedItem = Me.Tab2
            Me.TabControl1.SelectedIndex = 2
    End Sub

    Danke

    Es geht mir um WPF(XAML) Visual Studio Proff. 2010, VisualBasic, Win7 und verständliche Hilfe. Als Quelle nutze ich oft msdn Hilfe.

    Dienstag, 12. Februar 2013 15:16