Avatar billede deamill Nybegynder
23. juni 2007 - 20:26 Der er 5 kommentarer og
1 løsning

Tabs i VB.NET

Hej,

Jeg anvender VS.NET 2005 (VB)

Jeg har en form med nogle tabs på.

Hvordan gør jeg så man ikke kan trykke på de forskellige tabs før jeg vil have det?

Altså noget i stil med:
TabStop1.Enable = False
eller
TabControl1.TabStop1.Enable = False


Det virker så bare ikke!

På forhånd tak!
Avatar billede deamill Nybegynder
28. juni 2007 - 07:53 #1
Er der virkelig ingen som ved dette!!?
Avatar billede danm Nybegynder
08. juli 2007 - 00:59 #2
Umiddelbart kan du ikke med en enkelt kommando som sådan.. Du kan gemme den så den ikke bliver vist eventuelt:

TabControl1.TabPages.Remove(Tabstop1)
og så vise den igen med:
TabControl1.TabPages.Add(Tabstop1)
(funktionen .hide virker ikke i VS2005, ig microsoft har ikke rettet fejlen endnu)

Ellers hvis du vil have tabsiden skal stå, men brugeren ikke skal kunne trykke på den kan du lave en lille "omdiregering" i tabsidens click event:

Private Sub TabStop1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabStop1.Click
If kanbrugeTAB1=False Then
  Tab0.focus
End if
End Sub

Her sender du så brugeren hen til en bestemt side hver gang der klikkes på den ikke tilgængelige tab. Ideen er at du kan lave en global variabel der indeholder hvilken tab nummer der er i brug lige nu, og så når brugeren trykker på den ikke tilgængelige, sendes han istedet tilbage den registrerede tab...

Det du får ud af TabControl1.TabStop1.Enable = False er at alle komponenterne på den pågældende side ikke kan bruges..
Avatar billede groop Nybegynder
08. juli 2007 - 01:30 #3
Først - Jeg er mest til C#, så derfor er navnene måske lidt forkerte.
En anden mulighed end den danm beskriver er, at extende TabControl og TabPage (altså 2 klasser). Dernæst overwrite OnSelectedIndexChanged i TabControl og tilføje en (Enable) attribute i TabPage. Herefter kan du i OnSelectedIndexChanged bruger din attribute til, at beslutte om brugeren har adgang til den pågældende tabs indhold. Yderligere kan du bestemme design udfra attributten.
Held og lykke.
Avatar billede groop Nybegynder
08. juli 2007 - 01:47 #4
Det var selvfølgelig OnSelecting istedet for OnSelectedIndexChanged.
fx. (C#-kode)

protected override void OnSelecting(TabControlCancelEventArgs e)
{
  if (e.TabPage.Enabled == false)
  {
    e.Cancel = true;
  }
  base.OnSelecting(e);
}
Avatar billede deamill Nybegynder
09. juli 2007 - 07:30 #5
ok, tak, jeg vil prøve begge ting senere.

Lidt skørt at man ikke bare kan disable en tab :-/
Avatar billede deamill Nybegynder
22. marts 2011 - 12:59 #6
fandt en anden løsning
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

Udviklings- og Forenklingsstyrelsen

Udvikler til procesapplikationer

Udviklings- og Forenklingsstyrelsen

Generalist til PMO

Udviklings- og Forenklingsstyrelsen

Erfarne IT-udviklere til fremtidens skattevæsen