IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.NET][PDA]Remplir 2 textbox par liste de valeurs


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 125
    Points : 125
    Points
    125
    Par défaut [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 .

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

    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).

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 125
    Points : 125
    Points
    125
    Par défaut
    Que c'est beau l'heritage Merci bcp neguib.

    Donc pour mon complement d'information, j'ai donc change mes textBox en MonTextBox (avec le 1er qui va s'appeler "tbxId_" & i et le second "tbxNom_" & i) et rajoute ce code dans ma procedure GroupTbKeyDown
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim tbx As MonTextBox
    For Each ctl As Control In tbpDatos.Controls
        If ctl.GetType.ToString.Split(".")(UBound(ctl.GetType.ToString.Split("."))) = "MonTextBox" Then
            tbx = CType(ctl, MonTextBox)
            If tbx.Name.Split("_")(1) = CType(sender, MonTextBox).Name.Split("_")(1) Then
                If tbx.Name.Split("_")(0) = "tbxId" Then tbx.Text = lv.dgListValues(lv.dgListValues.CurrentRowIndex, 0)
                If tbx.Name.Split("_")(0) = "tbxNom" Then tbx.Text = lv.dgListValues(lv.dgListValues.CurrentRowIndex, 1)
            End If
        End If
    Next
    Et la ca marche comme je veux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Remplir un textbox par le plus grand nombre d'une colonne
    Par dodo28 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/11/2009, 17h42
  2. Remplir les textboxes a partir de la liste
    Par Pingva dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/08/2007, 17h36
  3. remplir textbox par une requete
    Par mawkli dans le forum ASP.NET
    Réponses: 9
    Dernier message: 23/05/2007, 17h01
  4. remplir un textbox àpartir de 2 list
    Par amelhajer dans le forum VB.NET
    Réponses: 1
    Dernier message: 29/03/2007, 10h22
  5. [Source][VBA-E] Remplir une zone de liste Excel par une requête Access
    Par cafeine dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/01/2007, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo