Toon posts:

[C#] tabControl tabPages

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een waarschijnlijk eenvoudige vraag mbt tot tabPages in c#. Ik ben bezig met een windows applicatie te maken in c# maar loop tegen het volgende aan.
Ik heb drie tabbladen:
tabPage1 => gebruikersoverzicht
tabPage2 => gebruiker toevoegen
tabPage3 => groep overzicht

Wanneer ik nu in tabPage2 zit en daar een gebruik toevoeg wil ik dat tabPage1 actief wordt. Dus dat ik het overzicht van de gebruikers weer te zien krijg. Nu doe ik het volgende:

this.tabControl1.SelectedIndex = 0;

HIerbij is tabControl1 het tabControl object en SelectedIndex de index van tabPage1. Dit werkt niet.
Toen heb ik de volgende opties gedaan:
this.tabControl1.selectTab = tagPage1;
this.tabControl1.selectTab = "tabPage1";

Maar geen van beide werkt. Vervolgens heb ik een test gedaan om te kijken welke tab nou actief is. Wanneer ik in tab3 zit en dan een:
label4.Text = tabControl1.SelectedTab.Text;
(lavel4 = testLabel)
Doe dan staat er altijd de text van het eerst tab ondanks dat ik tab3 "actief" is.

Moet je ergens iets dmv eventHandling registreren of hoe werkt dat in c#?

  • FireDrunk
  • Registratie: November 2002
  • Laatst online: 17-11 19:31
probeer TabControl.SelectedTab eens, die kun je ook setten.
Dus TabControl.SelectedTab = TabControl.TabPages[0];

MSDN Link

[ Voor 20% gewijzigd door FireDrunk op 15-06-2008 14:26 . Reden: Toevoeging... ]

Even niets...


  • Haan
  • Registratie: Februari 2004
  • Laatst online: 19:52

Haan

dotnetter

thijs_cramer schreef op zondag 15 juni 2008 @ 14:24:
probeer TabControl.SelectedTab eens, die kun je ook setten.
Dus TabControl.SelectedTab = TabControl.TabPages[0];

MSDN Link
Zo doe je dat inderdaad.

Maar
Wanneer ik in tab3 zit en dan een:
label4.Text = tabControl1.SelectedTab.Text;
(lavel4 = testLabel)
Doe dan staat er altijd de text van het eerst tab ondanks dat ik tab3 "actief" is
Zou wel gewoon de text van de geselecteerde tab moeten weergeven hoor, ik heb het net nog even snel getest.

Kater? Eerst water, de rest komt later


Verwijderd

Verwijderd schreef op zondag 15 juni 2008 @ 14:19:
Maar geen van beide werkt. Vervolgens heb ik een test gedaan om te kijken welke tab nou actief is. Wanneer ik in tab3 zit en dan een:
label4.Text = tabControl1.SelectedTab.Text;
(lavel4 = testLabel)
Doe dan staat er altijd de text van het eerst tab ondanks dat ik tab3 "actief" is.

Moet je ergens iets dmv eventHandling registreren of hoe werkt dat in c#?
Wanneer voer je die regel uit? Als je dat slechst eenmalig, aan het begin van je programma, doet...ja dan is het vrij logisch dat er tab1 blijft staan ;).

Als je dit op een tab-view-changed event (SelectedIndexChanged) telkens aanroept, dan zul je zien dat het wel goed gaat (hoop ik O-) ).

Verwijderd

Topicstarter
@Thijs,

Nee, dat werkt eveneens niet.


@haan,

Dat doet het dus niet ;-)

@Slindenau

Ok, maar waarom werkt selectTab dan niet?

edit:
Thijs, het werkt wel zo. Ik ben alleen wel benieuwd waarom het zo wel werkt en wanneer het met
this.tabControl1.selectTab = tabPage1 niet werkt...

[ Voor 36% gewijzigd door Verwijderd op 15-06-2008 21:29 ]


Verwijderd

.SelectedTab (hoofdletter S) :?

Want ik heb het net even getest in een nieuw project, werkt inderdaad prima met SelectedTab = tabPage1 / 2 / etc

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

leendert, 'selectedTab' (zonder hoofdletter 'S') als property gaf bij jouw dan geen compilatie fout?

Normaal gesproken krijg je dan een "System.Windows.Forms.TabControl does not contain a definition for 'selectedTab' and no extension method 'selectedTab' accepting a first argument of type System.Windows.Forms.TabControl could be found" melding.

Heb je niet gewoon elke keer naar dezelfde (debug) build gekeken omdat je applicatie niet build? Staan er misschien #pragma directives in je project waardoor foutmeldingen worden onderdrukt?

If it isn't broken, fix it until it is..


Verwijderd

Topicstarter
Nee, dat is het vreemde. Ik kreeg geen enkele error.
Ik builde mijn project wel constant en heb hem daarbij ook nog regelmatig "gecleand".

@Staan er misschien #pragma directives in je project waardoor foutmeldingen worden onderdrukt?
Ik ben niet zo heel bekend in c# maar wat zijn precies #pragma directives?

Ik krijg btw wel errors wanneer ik een echte c# error heb of iets doe wat geen object is dus ik denk niet dat ik die #pragma directives onderdruk.

@slindenau

mm, dat zou wel heel stom van me zijn als ik het zonder hoofdletter heb gedaan gezien ik meestal gebruik maak vanauto completion. Kan ik me haast niet voorstellen maar ik kan het hier niet testen gezien ik nu op mijn werk ben.

[ Voor 20% gewijzigd door Verwijderd op 16-06-2008 09:18 ]


  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Met #pragma warning [disable/restore] [komma gescheiden lijst van errornummers] kun je bepaalde waarschuwingen onderdrukken.

Maar ik bedenk mij ineens dat zelfs #pragma niet kan worden gebruikt om foutmeldingen te onderdruken. Alleen de waarschuwingen (bijvoorbeeld dat een variabele nog niet wordt gebruikt) kun je onderdrukken..

Ik kan me bijna niet voorstellen dat jouw project compileert als je een niet bestaande property probeert te zetten. SelectTab is een methode dus die accepteert ook geen toewijzing (SelectTab = 1). Wel kun je aan SelectTab index, tab of naam meegeven als argument (SelectTab(0)).

De code regels uit je topic, komen die copy&paste uit visual studio of heb je ze overgetikt waarbij misschien enkele schrijffoutjes zijn opgetreden?

If it isn't broken, fix it until it is..


Verwijderd

Topicstarter
Ik kan me ook niet voorstellen dat er foutjes in zitten en dat die dan toch compileerd dus waarschijnlijk zijn de foutjes bij het formuleren van de vraag erin gedoken. Ik heb de c# code getikt en niet copy / paste gedaan.
Zodra ik thuis ben kijk ik gelijk in de code en dan kan ik meer duidelijkheid geven.
In ieder geval bedankt!.

Verwijderd

Topicstarter
Zojuist nog even getest:

this.tabControl1.SelectTab(this.tabPage1); // werkt niet
this.tabControl1.SelectedTab = tabPage1; // werkt niet
this.tabControl1.SelectedTab = this.tabControl1.TabPages[0]; // werkt wel
this.tabControl1.SelectTab(this.tabControl1.TabPages[0]); // werkt ook

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

offtopic:
Tip, geef je controls fatsoenlijke namen. Op deze manier heeft niemand een idee waar tabControl1 voor dient, en wat tabPage1 bevat. :)

Sole survivor of the Chicxulub asteroid impact.

Pagina: 1