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


Skicka vidare värden från button.

Postades av 2006-09-12 09:18:17 - Johannes Strömberg, i forum vb.net, Tråden har 2 Kommentarer och lästs av 969 personer

Hej. Jag har en liten kodsnurra som ser ut som detta (har klippt ner till väsentligheter:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Private Sub DoPopulateTabPage()
 
    Dim Conn As SqlConnection = New SqlConnection("Data Source=111.111.111.111;Initial Catalog=TestDB;UID=sa;PWD=sa")
    Conn.Open()
 
    Dim Comm As SqlCommand
    Comm = New SqlCommand("SELECT * FROM tblTestIDs WHERE CheckOut='Nope'", Conn)
    Dim rs As SqlDataReader = Comm.ExecuteReader()
 
    If rs.HasRows = False Then
 
        Dim EmptyTabPage As New TabPage()
        EmptyTabPage.Text = "Finns nada att visa"
 
        TabControl1.TabPages.Add(EmptyTabPage)
 
        Dim lblEmpty As New Label
        lblEmpty.Text = "Här var det tomt"
 
        EmptyTabPage.Controls.Add(lblEmpty)
 
    Else
 
        Dim x As Integer
 
        x = 0
 
        Do While rs.Read()
 
            Dim myTabPage As New TabPage()
            myTabPage.Text = "(" & (TabControl1.TabPages.Count + 1) & ")" & " IDnum: " & rs("IDnum").ToString()
 
            TabControl1.TabPages.Add(myTabPage)
 
            Dim lblCaption As New Label
            lblCaption.Left = 1
            lblCaption.Top = 5
            lblCaption.AutoSize = True
            lblCaption.Text = "IDnum: " & rs("IDnum")´
 
            myTabPage.Controls.Add(lblCaption)
 
            Dim btnName As New Button
            btnName.Text = "Checka ut"
            btnName.Top = 400
            btnName.Left = 0
            myTabPage.Controls.Add(btnName)
            AddHandler btnName.Click, AddressOf Checkout_Click
 
            Dim btnPrint As New Button
            btnPrint.Text = "Skriv ut"
            btnPrint.Top = 400
            btnPrint.Left = 80
            myTabPage.Controls.Add(btnPrint)
            AddHandler btnPrint.Click, AddressOf Print_Click
 
            x = x + 1
        Loop
    End If
    rs.Close()
    Conn.Close()
End Sub
 
Private Sub Checkout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    MessageBox.Show("Clicked Checkout")
    DoPopulateTabPage()
End Sub
 
Private Sub Print_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    MessageBox.Show("Clicked Print")
    DoPopulateTabPage()
End Sub


Jag skulle i Checkout_Click vilja lägga till en SQL UPDATE och köra, men då måste jag veta vilket IDnum som Checka ut knappen tillhör, hur gör jag lättast detta?


//Johannes


Svara

Sv: Skicka vidare värden från button.

Postades av 2006-09-12 14:08:20 - Jan Bulér

Det finns lite olika sätt att lösa det men detta kan vara ett sätt.


När su skapar knappen för Checkout så kan du t ex använda dig av "Tag" egenskapen för att spara ditt IDnum värde.

<code>
Dim btnName As New Button
btnName.Text = "Checka ut"
btnName.Top = 400
btnName.Left = 0
btnName.Tag = IDnum
myTabPage.Controls.Add(btnName)
AddHandler btnName.Click, AddressOf Checkout_Click
</code>

I din knapphändelse Checkout_Clicked så har du en parameter som heter "sender" den talar om vad det var som genererade händelsen.

<code>
Private Sub Checkout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
MessageBox.Show(String.Format("Clicked Checkout for IDnum {0}", CType(sender, Button).Tag))
DoPopulateTabPage()
End Sub
</code>

CType(sender, Button) konvertera sender som är av typen "object" till en "Button". I en skarp applikation borde man kolla att sender verkligen är av typen button men i detta exempel förutsätter vi det.
I och med att vi säger att sender är av typen Button så kommer vi åt egenskapen "Tag" och kan då läsa av IDnum som vi lagrat där.

Händelsen kan även skrivas om så här om det blir tydligare för dig.

<code>
Private Sub Checkout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim pressedButton As Button = CType(sender, Button)
MessageBox.Show(String.Format("Clicked Checkout for IDnum {0}", pressedButton.Tag))
DoPopulateTabPage()
End Sub
</code>


eller så här, där du kommer åt att läsa info på din TabPage

<code>
Private Sub Checkout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
If (TypeOf sender Is Control) Then
If (TypeOf CType(sender, Control).Parent Is TabPage) Then
With CType(sender, Control).Parent
MessageBox.Show(String.Format("Clicked Checkout for '{0}'", .Text))
End With
End If
End If
DoPopulateTabPage()
End Sub
</code>

som sagt var, det finns många sätt att lösa det på.


Svara

Sv:Skicka vidare värden från button.

Postades av 2006-09-12 14:50:01 - Johannes Strömberg

Tack för hjälpen. Testade även:

?
1
2
3
Dim nIDnum As Long
 
nIDnum = DirectCast(sender, Button).Tag


Det verkade med göra vad det skulle.


Svara

Nyligen

  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe
  • 20:22 Spel
  • 17:07 Snabb och trevlig webbplats utan l

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 118
27 958
271 737
354
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
Expand
next previous
Close

Previous

0/0

Next