Avatar billede xfox Nybegynder
01. december 2003 - 17:31 Der er 10 kommentarer og
1 løsning

Array af control

I "gamle dage" kunne man oprette et array af en kontrol, således af man f.eks. kunne have en masse knapper, og lige meget hvilken en af dem man trykkede på ville den hoppe ind i den samme kode, og udfører en bestemt kommando. VB spurgte om man ville oprette et array af en control når man kopierede controlen og satte den ind samme sted. I .NET syntes jeg ikke helt at man har samme mulighed. Hvad gør man så?
Avatar billede arne_v Ekspert
01. december 2003 - 18:09 #1
Du kan godt oprette et array af en kontrol.

Men jeg vil overlade forklaringen om hvordanb til en anden, da
jeg ikke er GUI mand.
Avatar billede 2c Nybegynder
01. december 2003 - 19:25 #2
Det er korekt, det kan man ikke lave i guien i .net.

Men du kan lave en masse buttons, og tilføje den samme eventhandler til dem alle.
Avatar billede xfox Nybegynder
01. december 2003 - 19:31 #3
hvordan?
Avatar billede 2c Nybegynder
01. december 2003 - 19:32 #4
Hvis du vil lave et array, er du nød til at lave det i koden. Jeg har et eksempel hvor jeg opretter 10 pictureboxes, og tilføjer dem på en form.

private void setUpPictureboxes()
{
Point startLocation = new Point(8,96);
pictureBoxes = new PictureBox[10]{
new PictureBox(), new PictureBox(), new PictureBox(),
new PictureBox(), new PictureBox(), new PictureBox(),
new PictureBox(), new PictureBox(), new PictureBox(),
new PictureBox()};

for ( int i = 0 ; i < pictureBoxes.Length; i++ )
{
this.Controls.Add(pictureBoxes[i]);
pictureBoxes[i].Visible = true ;
pictureBoxes[i].SetBounds(startLocation.X, startLocation.Y + i * 55, 100,  50 ) ;
this.pictureBoxes[i].Click += new System.EventHandler(this.pictureBoxes_Clik);
}
}
Avatar billede 2c Nybegynder
01. december 2003 - 19:35 #5
Hvis du vil gøre det i din gui markerer du bare alle buttons, klikker properties, klikker på events, og vælger den samme funktion til 'click'. Så har du dog ikke et array af buttons.
Avatar billede xfox Nybegynder
01. december 2003 - 19:43 #6
Jeg kan ikke helt finde den property der hedder "event"? Det er vel design mode vi snakker om nu?
Avatar billede 2c Nybegynder
01. december 2003 - 22:25 #7
Jeg tror jeg er kommet til at blande det lidt sammen med C#. Glem det jeg sagde med events.

Jeg tror dog stadig ikke du kan lave et array af controls i guien.

Du kunne eventuelt lave en funktion som alle dine controls kaldte når der blev klikket på dem ?
Avatar billede xfox Nybegynder
01. december 2003 - 22:33 #8
Ja det har jeg tænkt på, men det vil nok være lidt upraktisk hvis jeg har 100 knapper der skal gøre det samme, men hver komme med et bestemt indput. Kan det passe at .NET har mistet nogle funktioner? Jeg troede at ved at opgradere fra VB til VB.NET ville man kunne få en bedre og mere optimal kode, men måske tager jeg fejl. Jeg tager dog imod alle forslag...
Avatar billede 2c Nybegynder
02. december 2003 - 00:40 #9
VB.net er lidt anderledes end vb6, og det har mistet control array delen i guien.

Her er et link til hvordan du kommer ud over problemet med control arrays:

http://msdn.microsoft.com/vbasic/using/columns/adventures/default.aspx?pull=/library/en-us/dnadvnet/html/vbnet05132003.asp
Avatar billede xfox Nybegynder
02. december 2003 - 16:49 #10
Godt link. Ikke lige den måde jeg havde regnet med, men det lader til at være den eneste i VB.NET. Jeg skal nok kunne bruge det til et eller andet. Kom med et svar og du skal få dine velfortjente points.
Avatar billede 2c Nybegynder
02. december 2003 - 22:47 #11
svar
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