vb.net 2.0 forms in een splitcontainer laden

Pagina: 1
Acties:
  • 373 views sinds 30-01-2008
  • Reageer

  • GAEvakYD
  • Registratie: Juni 2001
  • Laatst online: 21:01
Ik ben bezig met een programma in vb.net 2.0 (visual studio 2005).
Nu wil ik daarin een soort van outlook uiterlijk maken dat 2 of meerdere frames/panels heeft.
Aan de linkerkant een navigatiekeuze voor de verschillende programmadelen (denk aan email, agenda, etc in outlook). Als ik daarin een item aanklik wil ik dat er op het andere panel een (reeds bestaand) form geladen word.

Nu heb ik alle individuele forms al af en de functionele werking is ook getest Als ik ga zoeken op google met mijn vraag, kom ik telkens op de splitcontainer oplossing uit. In eerste instantie lijkt dit ook de oplossing voor mij vraag. Het probleem is alleen dat een splitcontainer twee panels aanmaakt. Hierop kan ik dan controls plaatsen, dat werkt allemaal perfect. Ik wil alleen dat ik in het rechterpanel bestaande form laat zien.
Het lijkt mij namelijk niet de bedoeling om in runtime telkens alle controls te creëren en op het panel te zetten. Een andere oplossing die nog veel lelijker is om standaard alle controls op het panel te zetten en dan met de visable property de desbetreffende controls zichtbaar te maken.

Ik moet haast wel wat over het hoofd zien maar ik zie de oplossing alleen nog niet helemaal. Hopelijk kan iemand mij helpen.

[ Voor 8% gewijzigd door GAEvakYD op 06-02-2006 19:10 ]

Lekker duurzaam. Skoda Enyaq EV - First edtion, Alpha Innotec Brine warmtepomp (MSW2-6S), Totaal 12135 Wp aan Zonnepanelen geïnstalleerd.


  • whoami
  • Registratie: December 2000
  • Laatst online: 18:04
Ipv een form te laten zien in je rechter gedeelte, kan je er misschien eens over denken om er een usercontrol in te laten zien ?

Ipv forms te maken, maak je dus user-controls, en naar gelang de actie die de gebruiker neemt, laad je de juiste user-control in je rechter-gedeelte.

[ Voor 38% gewijzigd door whoami op 06-02-2006 20:01 ]

https://fgheysels.github.io/


  • GAEvakYD
  • Registratie: Juni 2001
  • Laatst online: 21:01
hmmmm dat is inderdaad een idee. Ik zal er vanavond eens naar kijken of ik een bestaand
form kan gaan ombouwen naar een usercontrol. Ik heb hier wel vaker mee gewerkt maar had
eigenlijk nog niet bedacht dat dit de oplossing zou kunnen zijn.

Andere oplossingen zijn er niet denk je?

Lekker duurzaam. Skoda Enyaq EV - First edtion, Alpha Innotec Brine warmtepomp (MSW2-6S), Totaal 12135 Wp aan Zonnepanelen geïnstalleerd.


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 06-10 13:51

pjvandesande

GC.Collect(head);

Een form heb je zo geconvert naar een Usercontrol. Pas gewoon je base class aan, van Form naar UserControl. Als je geen gebruikmaakt van Form properties dan zou je geen error moeten krijgen bij een build; anders fix je de error gewoon nog even.

Waarom zou je een form willen laden in een container? Van welke form specifike eigenschappen zou je dan gebruik willen maken?

  • GAEvakYD
  • Registratie: Juni 2001
  • Laatst online: 21:01
Het werkt!!, inderdaad best simpel om er een usercontrol van te maken. Het enige dat fout ging was dat het onload event afgaat bij het plaatsen van het usercontrol op het hoofdform. In deze routine deed ik een routine die een datagridview ging updaten maar daarin was de defaultconnectionstring niet gezet. Dit aangezien ik deze pas inlaad bij uit een xml bestand bij get opstarten. Hier heb ik dus maar een default waarde van gemaakt. Dan gaat het wel goed.

Dus nu 1 form gedaan, nog 10 te gaan. Maar ik heb er alle vertrouwen in.

Bedankt.

Lekker duurzaam. Skoda Enyaq EV - First edtion, Alpha Innotec Brine warmtepomp (MSW2-6S), Totaal 12135 Wp aan Zonnepanelen geïnstalleerd.


  • whoami
  • Registratie: December 2000
  • Laatst online: 18:04
GAEvakYD schreef op woensdag 08 februari 2006 @ 07:44:
Het enige dat fout ging was dat het onload event afgaat bij het plaatsen van het usercontrol op het hoofdform. In deze routine deed ik een routine die een datagridview ging updaten maar daarin was de defaultconnectionstring niet gezet. Dit aangezien ik deze pas inlaad bij uit een xml bestand bij get opstarten. Hier heb ik dus maar een default waarde van gemaakt. Dan gaat het wel goed.
Dit kan je met deze 'hack' vermijden:
code:
1
2
3
4
if( this.IsDesignMode == false )
{
    // blaat
}

https://fgheysels.github.io/


  • Exception
  • Registratie: Augustus 2006
  • Laatst online: 30-11 14:52
Sorry voor deze hele late reactie :P

Maar ik ben echter ook bezig met het gebruik van verschillende controls in een SplitContainer. Nu vraag ik mij af, hoe de TS zo'n UserControl in de SplitContainerPanel plaatst, zodat deze ook kan worden veranderd naar een andere dmv. een commando. (Dus wanneer men op bijvoorbeeld Agenda of Contactpersonen klikt net als in outlook.

Alvast bedankt.

[ Voor 24% gewijzigd door Exception op 14-11-2006 18:21 ]


  • PhysicsRules
  • Registratie: Februari 2002
  • Laatst online: 31-03 07:26

PhysicsRules

Dux: Linux voor Eenden

Dynamisch een control laden in het panel

C#:
1
2
MyUserControl myc = new MyUserControl();
SplitContainerPanel.Panel1.Controls.Add(myc);

Uit mijn hoofd :P

Zoek in Google eens op dynamisch laden van controls.

  • Exception
  • Registratie: Augustus 2006
  • Laatst online: 30-11 14:52
Bedankt, het is gelukt ;)
Pagina: 1