Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Skapa controller efter start

Postades av 2006-05-16 19:31:46 - Rasmus Hörstedt, i forum vb.net, Tråden har 10 Kommentarer och lästs av 740 personer

Hur får man ett antal controller (picturebox i detta fallet) att skapas och ritas ut i formen efter programmet startats?

Antagligen inte svårt, men jag får de då inte att funka iaf. Testat att göra det till en array av pictureboxar som jag använder, inga framsteg där heller.

Vad är det jag missat, för de måste väl gå, då jag har gjort detta för 5år sen i vb ;)


Svara

Sv: Skapa controller efter start

Postades av 2006-05-16 20:51:26 - Oskar Johansson

c#:

for(int i=0; i < _antal_; i++)
{
PictureBox pb;
pb = new PictureBox();
pb.Location = new Point(_x_led_, _y_led_);
this.Controls.Add(pb);
}


Svara

Sv:Skapa controller efter start

Postades av 2006-05-16 21:27:51 - Rasmus Hörstedt

1. vb.net jag håller på med, tyvärr inte c#
2. Tanken är att jag ska ha alla pictureboxar som: picbox(i).blaha, och där med få deras events som click med mera att hanteras med samma kod...

Tack för hjälpen ändå =)


Svara

Sv: Skapa controller efter start

Postades av 2006-05-16 21:33:21 - Oskar Johansson

> 1. vb.net jag håller på med, tyvärr inte c#

Då får du lära dig att åtminstone läsa c#, tekniken är exakt samma, bara olika syntax.

> 2. Tanken är att jag ska ha alla pictureboxar som: picbox(i).blaha, och där med få deras events som click med mera att hanteras med samma kod...

Då får du skapa en ArrayList också (eller List<> om du kör 2.0) för bara dina pictureboxes och deklarera i din klass


Svara

Sv:Skapa controller efter start

Postades av 2006-05-16 21:41:05 - Robert Israelsson

VB.net
<code>
Dim pb As New PictureBox()
Dim iY, iX, iWidth, iHeight As Integer
iY = 0 : iX = 0
iWidth = 30 : iHeight = 30
'Egentligen valfritt att sätta placering och storlek hur man vill men att göra så mycket som möjligt på en gång är att föredra
'pb.Location = New Point(iX, iY)
'pb.Size = New Size(iWidth, iHeight)
pb.Bounds = New Rectangle(iX, iY, iWidth, iHeight)
pb.Visible = True
pb.BorderStyle = BorderStyle.FixedSingle 'en kant bara för att se vart den hamnar
Me.Controls.Add(pb)
</code>


Svara

Sv: Skapa controller efter start

Postades av 2006-05-16 21:53:48 - Rasmus Hörstedt

jo ser bra ut men hur får jag det sedan till att vara pb(x)? blir det så per automatik?

Och ja jag är helt värdelös på detta jädra hopplösa skitspråk ;)


Svara

Sv: Skapa controller efter start

Postades av 2006-05-16 22:00:34 - Jesper Enevold

Här har du en länk som beskriver hur du lägger till kontroller.

http://www.exforsys.com/content/view/1514/350/

/Jesper


Svara

Sv:Skapa controller efter start

Postades av 2006-05-16 22:32:08 - Peter Ilis

Man kan säga att det blir så med autmatik. De kommer automatiskt in i containerns controls collection. Men i den samlas även alla andra kontroller som ligger i samma container.

Typ
<code>
For each Ctrl as Control in me.controls
if TypeOf Ctrl is picturebox then
'Hittade en
end if
Next
</code>

Du kan ju också om du vill lägga till dem till en array, collection eller annat vid skapande om så önskas.

Mvh
Peter


Svara

Sv: Skapa controller efter start

Postades av 2006-05-16 22:43:09 - Rasmus Hörstedt

För att förtydliga mitt problem så kommer här en längre förklaring:
Jag ska göra ett memory spel i vb.net så jag tänkte att de hela vore ju lättast om jag bara gjorde en array av pictureboxar som jag loopar igenom och sätter till de olika bilderna. nåt i stil med

<code>
Dim pb(30) as PictureBox

For i = 1 to 30
pb(i).blaha = 1.jpg
...
Next i
</code>

detta funkar uppenbarligen inte tydligen, vilket jag efter mycket om och men inte kan förstå varför eftersom det för mig verkar helt logiskt. Så jag gjorde som det gavs förslag om, men då får jag ingenstans som tar hand om clicken eller andra events, hur löser man det?

Hur kommer det sig att man bara inte kan göra en array som i min kod ovan och saken är biff?


Svara

Sv:Skapa controller efter start

Postades av 2006-05-17 00:20:35 - Robert Israelsson

Här är ett exempel jag gjorde som du säkert kan modifiera för dina behov:
<code>
Dim pbArr(10) As PictureBox
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim i, iY, iX, iWidth, iHeight As Integer
iY = 0 : iX = 0
iWidth = 30 : iHeight = 30
For i = 0 To 10
Dim pb As New PictureBox()
pb.Bounds = New Rectangle(iX + i * iWidth, iY, iWidth, iHeight)
pb.BorderStyle = BorderStyle.FixedSingle 'en kant bara för att se vart den hamnar
pbArr(i) = pb
Me.Controls.Add(pbArr(i))
AddHandler pbArr(i).Click, AddressOf Me.ImgCommon_Click
Next
End Sub
Private Sub ImgCommon_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
MsgBox(sender.left)
End Sub
</code>

Det är alltså AddHandler som är nyckelfunktionen för dig.
Exemplet ritar 11 pictboxar bredvid varandra och när man klickar på den visar den en msgbox som talar om sin egen utgångspunkt i x-led.


Svara

Sv: Skapa controller efter start

Postades av 2006-05-17 00:52:34 - Rasmus Hörstedt

Ja men de är ju underbart!

Tusen och åter tusen tack :)

Nu kan jag äntligen få sova ;) // Rasmus


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 725
27 958
271 751
533
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies