Bonjour,
je suis novice en programmation et aussi en VB. Je souhaite réaliser une appli sous visual studio et en je voudrai une seule fenêtre avec des panels (sous forme de groupbox) qui changent.
Déjà ma première question c'est est une bonne solution ou y en a t il d'autre plus simple.
Sinon j'ai commencé le panel client (formulaire classique : nom, prénom,...., ajouter,modifier,....) et déjà plusieurs soucis.
La création facile mais dès que je commence à vouloir tripoter les textboxs ça fait des vagues.
la saisie semi-auto est le plus grand problème. je veux plus tard le relier à une BD mais en attendant j'ai fais une petite liste de seulement 10 noms et c'est le drame.
ça fonctionne mais pas toujours et là ça plante. j'ai l'impression que lorsque l'on saisie trop vite ou que l'on reste appuyer sur une touche (comme pour effacer), la mémoire se met en branle.
Pour y remédier j'ai placé des DoEvents() mais ça ne fait que retarder le problème. D’ailleurs des fois un simple clic sur une touche fait planter. Et puis quoi qu'il en soit c’est loin d'être fluide à l'affichage: quand j'écrit dans une textbox toute les textboxs avec autocompletemode scintillent.
Après ce long discourt je vous met qu'une partie du code![]()
et ma liste qui sera remplacer par la base de données
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 Public Class PanelClient : Inherits GroupBox ''dans le constructeur new 'initialiser controle LbNom = New Label() LbNom.Text = "Nom" LbNom.Dock = DockStyle.Left LbNom.AutoSize = True TbNom = New TextBox() TbNom.Dock = DockStyle.Left TbNom.Size = New Size(150, 10) TbNom.Text = " " 'ici ça commence les bidouilles car ça ne voulais pas faire la saisi semi-auto dès le premier caractère frappé AddHandler TbNom.TextChanged, AddressOf TbNom_TextChanged TbNom.Clear() 'du coup ici je "shunte" la bidouille 'action sur textbox Private Sub TbNom_TextChanged(o As Object, s As EventArgs) Call Flistetbox() System.Windows.Forms.Application.DoEvents() 'les fameux DoEvents() source.AddRange(listeTbox) System.Windows.Forms.Application.DoEvents() With TbNom .AutoCompleteCustomSource = source .AutoCompleteMode = AutoCompleteMode.Suggest .AutoCompleteSource = AutoCompleteSource.CustomSource End With End Sub
Après je suis preneur des conseils, merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Module Liste Public listeTbox(10) As String Sub Flistetbox() listeTbox = {"paul", "pierre", "jean", "pilou", "julien", "julie", "eric", "lolo", "thols", "xuan"} End Sub End Module
PS je vous lis souvent
Partager