[VB.NET][PDA]Remplir 2 textbox par liste de valeurs
Bonjour a tous,
Je suis en train de faire une petite application pour PDA (windows mobile pocket 2002) utilisant le Compact Framework.
J'ai trouve un code interessant pour la creation en cascade de plusieurs textbox (je precise que je debute en VB...).
Du coup je me suis dit que ce serait une bonne idee de gerer la creation de mon formulaire a travers ce code.
Voici ce que j'ai pour le moment http://img40.imageshack.us/img40/5192/textfields3jz.jpg.
Donc en Windows Forms normal tout va bien, je peux faire cela facilement, par contre avec le compact Framework, il me manque la propriete "Name" de "Control".
Donc je suis dans l'impossibilite de savoir quel textbox m'envoie cette action.
J'ai cependant un debut de code qui fonctionne :
Code:
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
| Private Sub frmEntrada_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Creation de ma liste de champs
Dim listaCampos() As String = {"Cliente", "CEDIS", "Operacion", "Cli. Final", "CAC", "Transp."}
Dim i As Integer
Dim tbx As TextBox
Dim lbl As Label
Dim y As Integer = 0
For i = 0 To listaCampos.Length - 1
'Insercion del label
lbl = New Label
lbl.Size = New Size(56, 20)
lbl.Text = listaCampos(i)
lbl.Location = New Point(0, y + 2)
Me.tbpDatos.Controls.Add(lbl)
'Insercion del TextBox ID
tbx = New TextBox
tbx.Size = New Size(36, 20)
tbx.Location = New Point(56, y)
AddHandler tbx.KeyDown, AddressOf Me.GroupTbKeyDown
Me.tbpDatos.Controls.Add(tbx)
'Insercion del TextBox Nombre
tbx = New TextBox
tbx.Size = New Size(146, 20)
tbx.Location = New Point(92, y)
AddHandler tbx.KeyDown, AddressOf Me.GroupTbKeyDown
Me.tbpDatos.Controls.Add(tbx)
y += 18
Next
End Sub
Private Sub GroupTbKeyDown(ByVal sender As Object, ByVal e As KeyEventArgs)
If e.KeyCode = Keys.F9 Then
'Recuperation d'un DataSet par WebService
Dim oWS As New LogisWs.CatalogosLogis
Dim oDS As DataTable
'recuperacion de la tabla del WebService
oDS = oWS.GetClientes(Me.tbpDatos.Controls(0).Text, "").Tables("catalogo")
Dim lv As New frmListValues
lv.dgListValues.DataSource = oDS.DefaultView
lv.ShowDialog()
'Recuperation des donnees dans mes textbox
CType(sender, Control).Text = lv.dgListValues(lv.dgListValues.CurrentRowIndex, 0)
lv.Dispose()
End If
End Sub |
Donc au final, la ligne "CType(sender, Control).Text = lv.dgListValues(lv.dgListValues.CurrentRowIndex, 0)" va realiser le travail que je souhaite : mettre la valeur de la colonne 0 dans le textbox qui a realise l'appel (suite a l'appui sur F9).
Du coup j'ai qques questions :
1. Cet appel peut etre fait sur le 1er (representant un ID) ou le 2nd (representant le nom)textbox (d'une meme ligne), du coup je ne sais pas comment faire pour que la 1ere col de ma liste de valeurs aille dans mon 1er textbox et la 2nde dans le 2eme ?
Je pensais sinon utiliser un caractere separateur genre "|" mais ca me semble deroutant pour l'utilisateur qui est habitue au systeme ID/Nom dans 2 textbox differentes.
2. Ai-je fais le bon choix de creer ma liste de textbox ainsi ? Y aurait-il une meilleure facon ? :roll:
3. Est-ce deroutant comme facon de programmer (qd on ouvre mon formulaire en design, il apparait vide). Devrai-je le creer graphiquement (meme si le pb reste entier car dans mon code je ne pourrai pas acceder au nom de mes textbox).
Re: [VB.NET][PDA]Remplir 2 textbox par liste de valeurs
Citation:
Envoyé par tostinni
...par contre avec le compact Framework, il me manque la propriete "Name" de "Control".
Donc je suis dans l'impossibilite de savoir quel textbox m'envoie cette action....
:)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
Public Class MonTextBox
Inherits TextBox
Private _name As String
Public Property Name() As String
Get
Return Me._name
End Get
Set(ByVal value As String)
Me._name = value
End Set
End Property
End Class |
:wink: