Toon posts:

[VB] controls toevoegen aan een container

Pagina: 1
Acties:
  • 28 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb een probleempje waar ik niet uitkom...hopelijk kan één van jullie mij helpen!! :*)

ik wil graag in VB dynamisch een control toevoegen aan mijn form. Nu lukt dat, maar ik weet niet hoe ik hem nu in een bepaalde container kan zetten.

Ik heb namelijk een SplitContainer in mijn Form waarbij in het linker Panel buttons worden toegevoegd aan de hand van een XML-documentje.

oftewel dit is de layout:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
==================================
||    Button1  ||                ||
|| ============||                ||
||    Button 2 ||                ||
||============ ||                ||
||    ETC..    ||                ||
||=============||                ||
||             ||                ||
||             ||                ||
||             ||                ||
||             ||                ||
||             ||                ||
||             ||                ||
==================================

Ik maak de buttons Dock = DockStyle.Top zodat ze netjes boven aan komen maar nu ze niet in de container staan zijn ze over de hele breedte van het scherm. Dit wil ik dus voorkomen!

de code die ik heb:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    Public Sub New()
        'XML ophaal code die goed werkt!
        Call addbutton(xmlReader.Value(), xmlReader.Value())
        ' This call is required by the Windows Form Designer.
        InitializeComponent()
        ' Add any initialization after the InitializeComponent() call.
    End Sub

    Private Sub addbutton(ByVal name As String, ByVal text As String)
        Dim MyText As New Button()
        MyText.Name = name
        MyText.Text = text
        MyText.Dock = DockStyle.Top
        MyText.TextAlign = ContentAlignment.TopLeft
        'MyText.Container = SplitContainer1.Panel1
        Me.Controls.Add(MyText)
    End Sub

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 14-02 12:34

gorgi_19

Kruimeltjes zijn weer op :9

't is ook een beetje afhankelijk welke versie je met VB bedoeld.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Visual Basic:
1
SplitContainer1.Panel1.Controls.Add(MyButton)

:?

Overigens vind ik MyText maar verwarrend, het gaat immers om een button object.

[ Voor 55% gewijzigd door RobIII op 20-08-2006 15:03 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
Ik werk nu met Microsoft Visual Basic 2005 Express Edition

Verwijderd

Topicstarter
Hey RobIII

Als ik dat probeer, wat ik ook al dacht dat logisch zou zijn krijg ik de foutmelding:

An error occurred creating the form. See Exception.InnerException for details. The error is: Object reference not set to an instance of an object.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op zondag 20 augustus 2006 @ 15:05:
Hey RobIII

Als ik dat probeer, wat ik ook al dacht dat logisch zou zijn krijg ik de foutmelding:

An error occurred creating the form. See Exception.InnerException for details. The error is: Object reference not set to an instance of an object.
Duh. Omdat je splitcontainer op dat moment nog niet bestaat, je bent immers je form zelf nog aan het initialiseren ;) /hint :Y)
VB heeft het zelfs nog in de comments gezet voor je :D
code:
1
' Add any initialization after the InitializeComponent() call.

Met de nadruk op after ;)

[ Voor 14% gewijzigd door RobIII op 20-08-2006 15:08 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
8)7 Je hebt gelijk jaah!!

Maar hoe valt dit nu goed op te lossen?

als ik hem 2 x initialiseer, voor mijn loop de buttons toevoegd en erna: InitializeComponent()
krijg ik rare dingen in mijn Form (2 menubalken etc)

* ik heb het gevonden...
Een keer inderdaad aan het begin van de code zetten is voldoende:

voor de volledigheid:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    Public Sub New()
        ' This call is required by the Windows Form Designer.
        InitializeComponent()
        ' Add any initialization after the InitializeComponent() call.
        'XML ophaal code die goed werkt!
        Call addbutton(xmlReader.Value(), xmlReader.Value())
    End Sub

    Private Sub addbutton(ByVal name As String, ByVal text As String)
        Dim MyText As New Button()
        MyText.Name = name
        MyText.Text = text
        MyText.Dock = DockStyle.Top
        MyText.TextAlign = ContentAlignment.TopLeft
        'MyText.Container = SplitContainer1.Panel1
        Me.Controls.Add(MyText)
    End Sub


8)7 Wat stom....bedankt hoor..nu kan ik weer verder :P

[ Voor 66% gewijzigd door Verwijderd op 20-08-2006 15:14 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op zondag 20 augustus 2006 @ 15:11:
8)7 Je hebt gelijk jaah!!

Maar hoe valt dit nu goed op te lossen?
Wat op te lossen? Het is toch opgelost dan :?
Verwijderd schreef op zondag 20 augustus 2006 @ 15:11:
als ik hem 2 x initialiseer, voor mijn loop de buttons toevoegd en erna: InitializeComponent()
krijg ik rare dingen in mijn Form (2 menubalken etc)
Ik kan er geen touw aan vastknopen?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op zondag 20 augustus 2006 @ 15:11:
8)7 Wat stom....bedankt hoor..nu kan ik weer verder :P
Mja sorry, maar dit is toch echt very basic, en het wordt je nog een keer voorgezegd ook.

Ik adviseer je toch om Programming Beleid eens door te lezen ;)

[ Voor 26% gewijzigd door RobIII op 20-08-2006 15:18 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1

Dit topic is gesloten.