Meilleur auteur de réponses
Faire glisser une colonne de TexBox

Question
-
Bonjour,
Je travaille sur un programme qui place des lignes de trois texbox sur une colonne. Le nombre de lignes est variable et peut atteindre 100 ou même 200.
Comment peut-on faire pour naviguer dans la colonne (montée descente) comme on peut le faire en EXCEL pour visualiser les cellules avec la règle de défilement ?
Est-ce possible au moyen d'une Scrollbar et si oui quel est le code ?
Sinon comment faire ?
Merci à qui voudra bien s'interresser à la question du débutant que je suis.
Réponses
-
Alors si j'ai bien compris vous voulez quelque chose du genre ?
Si tel est le cas, il suffit d'insérer le contrôle FlowLayoutPanel
Configurer les propriétés suivante :
AutoScroll = True
FlowDirection = TopDown
WrapContents = False
Padding = 5 ===> exemple
Ensuite il faut ajouter les textbox dynamiquement (Code) dans le FlowLayoutPanel.
Exemple :
Je veux ajouter 30 textbox au chargement de mon application.
Mon code sera comme suit :
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Dim max As Integer = 30 Dim curPos As Integer = 0 While curPos < max 'Je fais un new textbox Dim _txtBox As TextBox = New TextBox() '_mTextBoxList.Padding = Windows.Forms.Padding.Add(New Padding(6), New Padding(6)) 'Faire une marge de 6px entre les éléments _txtBox.Width = _mTextBoxList.Width - 6 'définir une largeur maxi au contrôle père 'Définir un événement à gérer (EXEMPLE) AddHandler _txtBox.TextChanged, AddressOf _txtBox_TextChanged _mTextBoxList.Controls.Add(_txtBox) 'ajouter dans la liste curPos += 1 'incrémenter le compteur End While End Sub Protected Sub _txtBox_TextChanged(sender As Object, e As EventArgs) End Sub
Cordialement
Merci de valider par "Proposer comme réponse" si celle-ci répond à votre demande !
Toutes les réponses
-
-
-
Bonjour,
Si vous appelez votre object Excel avec un Range sur la cellule cela serait il suffisant ?
For i as Integer = 0 To 50 objExcel.Range("A" & i).Select 'vous pouvez aussi mettre un sleep pour faire une pause entre les selections Next
Cordialement,
- Proposé comme réponse jedou lundi 4 février 2013 22:16
-
J'ai eu le temps de faire un petit exemple rapidement
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Dim excelApp As New Excel.Application Dim wb As Excel.Workbook = excelApp.Workbooks.Open(Application.StartupPath & "\monfichier.xlsx") excelApp.Visible = True Dim sheet As Excel.Worksheet = wb.Sheets(1) Dim r As Excel.Range = sheet.UsedRange For i As Integer = 1 To 50 Application.DoEvents() r.Range("A" & i).Select() Threading.Thread.Sleep(1000) Next End Sub
A vous de faire les adaptations
Si ce n'est pas ce que vous voulez pourriez vous apportez des précision sur "je souhaite faire défiler mes textbox"
Pour que je comprenne bien ce que vous dites c'est que vous avez mis des textbox dans votre fichier excel (en mode multiligne ?) et vous souhaitez faire un défilement du contenu de votre textbox excel depuis un projet VB.NET ?Cordialement,
- Proposé comme réponse jedou lundi 4 février 2013 22:16
-
Bonjour,
Est-ce que vous souhaitez manipuler du Excel depuis VB .Net ? =>Oui, Essayez les propositions ci-dessus.
Est-ce que vous souhaitez une grille dans votre application .Net ? => Oui, vous avez la possibilité d'utiliser GridView de .Net et le customiser pour le rendre grid.
Est-ce que vous n'avez qu'un seul textbox et que vous souhaitez avoir le scrollbar de défilement ? => Oui, il faut mettre la propriété ScrollBars du contrôle à Both.
Merci d'indiquer ce que vous recherchez parmi les questions ou de nous donner plus de détail sur votre demande.
Merci de valider par "Proposer comme réponse" si celle-ci répond à votre demande !
- Proposé comme réponse jedou lundi 4 février 2013 22:16
-
Bonjour Troksa, Bonjour Lyamine
J'ai mal posé ma question, je vous prie de m'en excuser, j'ai cité EXCEL seulement pour tenter d'imager ce que je veux faire, mais pas pour l'utiliser.
J'oublie EXCEL et je reprends ma question à zéro, en programmant avec VB NET seul
Mon programme consiste à inscrire les noms des participants à un concours. J'utilise une textbox uniligne par personne. Chaque textbox reçoit un nom et seulement ce nom. Le nombre de noms et par suite le nombre de textbox est variable et peut atteindre 100 ou 200
Les textbox se rangent en colonne au fur et à mesure de l'inscription et la colonne remonte d'une textbox lorsque je suis à la vingtième inscription, de sorte que l'écran affiche les textbox 1 à 20, puis 2 à 21, puis 3 à 22, ainsi de suite.
Est-il possible avec une Vscrollbar de naviguer dans la colonne, pour, par exemple, accéder à la textbox 25 alors que l'écran affiche les textbox 62 à 71 ?
Si oui, comment écrire le code ? Si non, y-at-il un autre moyen ?
Merci d'avance
- Proposé comme réponse jedou lundi 4 février 2013 22:16
-
Alors si j'ai bien compris vous voulez quelque chose du genre ?
Si tel est le cas, il suffit d'insérer le contrôle FlowLayoutPanel
Configurer les propriétés suivante :
AutoScroll = True
FlowDirection = TopDown
WrapContents = False
Padding = 5 ===> exemple
Ensuite il faut ajouter les textbox dynamiquement (Code) dans le FlowLayoutPanel.
Exemple :
Je veux ajouter 30 textbox au chargement de mon application.
Mon code sera comme suit :
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Dim max As Integer = 30 Dim curPos As Integer = 0 While curPos < max 'Je fais un new textbox Dim _txtBox As TextBox = New TextBox() '_mTextBoxList.Padding = Windows.Forms.Padding.Add(New Padding(6), New Padding(6)) 'Faire une marge de 6px entre les éléments _txtBox.Width = _mTextBoxList.Width - 6 'définir une largeur maxi au contrôle père 'Définir un événement à gérer (EXEMPLE) AddHandler _txtBox.TextChanged, AddressOf _txtBox_TextChanged _mTextBoxList.Controls.Add(_txtBox) 'ajouter dans la liste curPos += 1 'incrémenter le compteur End While End Sub Protected Sub _txtBox_TextChanged(sender As Object, e As EventArgs) End Sub
Cordialement
Merci de valider par "Proposer comme réponse" si celle-ci répond à votre demande !
-
-
Bonjour,
Ou comme suggéré également par Lyamine un contrôle DataGridView pourrait être plus adapté (c'est une grille de saisie avec des lignes et éventuellement plusieurs colonnes).
Voir par exemple l'image présente sur la page http://www.dotnetperls.com/datagridview pour voir à quoi ressemble ce contrôle...
Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
- Proposé comme réponse jedou mercredi 14 novembre 2012 17:18
-