Gå til innhold

Anbefalte innlegg

Heisan. Prøver å få til et Options vindu ved å koble et TreeView med en TabControl. Dette for å kunne bruke TreeView til å velge den aktuelle TAB. Men for at dette skal blir "pent" vil jeg gjemme vekk alle tabbs slik at kunn innholdet i dem synes. I Clarion kunne jeg gjøre noe slik:

 

?MyTabSheet{PROP:Wizard} = True    ' Slår av TABS
?MyTabSheet{PROP:NoFrame} = True   ' Slår av selve rammen

Så i koden på accepted på treeview:
Select(?MyTabSheet, choice(?MyTreeView))

Dermed vil den rette TAB vise sitt innhold avhengig av hvilken post/node som er valgt i treeview.

 

Noe tilsvarende i VB2005? Eventuelt alternaviter...

 

 

mvh

Ole

Endret av HDSoftware
Lenke til kommentar
Videoannonse
Annonse

Jeg tror ikke du kan skjule de, etter det jeg vet;

 

Men jeg har gjort noe lignende, men på en annen måte, men den er litt komplisert.

 

Det jeg har gjort, er å tilegne hver TreeNode en System.Type, som er en typeof(frmGeneralProperties) eller noe lignende.


public class frmPreferances
{
 protected Form m_form;

 public void ChangeForm(System.Type t)
 {
   
   if(m_form != null)
   {
     pnlTab.Controls.Remove(m_form);
     m_form.Dispose()
     m_form = null;
   }
   if(t == null)
     return;
   m_form = (Form)Activator.CreateInstance(t);
   pnlTab.Controls.Add(m_form);
 }
 private void TreeView_NodeSelect(object sender, e TreeViewEvent)
 {
   ChangeForm((Type)e.Node.Tag)
 }
}

 

Du kan også skrive fulle navnet på objektet i Tag property når du designer, men da må du bytte ut TreeView_NodeSelect med:

 private void TreeView_NodeSelect(object sender, e TreeViewEvent)
 {
   ChangeForm(Type.GetType((string)e.Node.Tag))
 }

 

Da skal du f.eks. skrive "MittProsjekt.frmGeneralPreferances" i Tag.

 

Og så lager du bare en form for hver side du skal ha, og legg typen til i treet, så blir det mindre brukte ressurser, og mer dynamisk.

 

Edit: :roll: Visual Basic jah, dumme meg.

Koden er også skrevet fra lufta, og inneholder feil og slikt, bruk den som referanse.

Endret av GeirGrusom
Lenke til kommentar
Jeg tror ikke du kan skjule de, etter det jeg vet;

 

Men jeg har gjort noe lignende, men på en annen måte, men den er litt komplisert.

 

Det jeg har gjort, er å tilegne hver TreeNode en System.Type, som er en typeof(frmGeneralProperties) eller noe lignende.

 

Betyr dette i praksis at du faktisk bruker forms som overlay's eller noe slik?

 

I så fall, Vet ikke helt om jeg skjønte det pnltab objektet. Anyway, løsningen er grei den. Visste bare ikke at man kunne blande forms ihop på den måten. Må studere dette litt nærmere...

 

Ole

Lenke til kommentar
pnlTab objektet er bare en container objekt, det kan være en PictureBox, eller et Panel, ellet noe annet, etter hva du trenger.

7094119[/snapback]

ok. Ser ingen pnlTab, men det er kanskje det samme som en Panel eller SplitContainer.

 

Men hvordan "wrapper" du innholdet fra en FORM inn i den? Man man bruke INHERITS eller noe slik?

Lenke til kommentar

Nei, du bruker Controls.Add()

Men formen sin TopLevel MÅ stå til True.

Da blir formen som en egen kontroll, på lik linje med Button eller andre kontroller, og innholdet vil være det du har designet.

 

Det er en fordel å skru FormBorderStyle til None forresten, så ikke brukren kan flytte formen rundt :)

Lenke til kommentar
Nei, du bruker Controls.Add()

Men formen sin TopLevel MÅ stå til True.

Da blir formen som en egen kontroll, på lik linje med Button eller andre kontroller, og innholdet vil være det du har designet.

 

Det er en fordel å skru FormBorderStyle til None forresten, så ikke brukren kan flytte formen rundt :)

7098342[/snapback]

HAHAHA! Smart triks. Du - jeg har gjort noe tilsvarende i Clarion for å få en multithread kontrol. Det vil si at en kontroll har flere tråder gåendes internt. Det ble ganske kult. Der gjorde jeg samme trikset, men jeg la på en GROUP uten rammer på vinduet slik at koordinatene på groupen hele tiden representerte størrelsen på "overlayet" FUnket glimrende med Resize etc.

 

Ole

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...