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

VB.NET Discussion :

Controle Tableau sous Visual Studio


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Par défaut Controle Tableau sous Visual Studio
    Bonjour,

    je cherche désespérément s'il y a un contrôle dans visual studio (vb.net) qui corresponde à un tableau, et dont je peux dés le départ choisir le nombre de colonnes et de lignes.

    J'ai testé avec TableLayoutPanel, mais le souci est que je voudrais ensuite savoir sur quelle colonne l'utilisateur à cliqué. Le but est de créer un petit jeu.

    Merci.

    A+

  2. #2
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    Vu que tu cherches à avoir la ligne et la colonne de chaque contrôle,tu devras :
    1/ ajouter tes contrôles par code
    2/ utiliser un class utilitaire Position pour "storer" ligne et colonne
    2/ assigner le class Position à la prop "Tag" du contrôle

    code exemple .vb:
    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
     
    Imports System.Windows.Forms
    Public Class Form1
        Friend WithEvents pnl As TableLayoutPanel
        Friend buttons As List(Of Button)
        Private nbColumn As Integer = 2
        Private nbRow As Integer = 3
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            pnl = New TableLayoutPanel
            pnl.Location = New Point(100, 100)
            pnl.ColumnCount = 2
            pnl.RowCount = 3
            pnl.ColumnStyles.Add(New ColumnStyle(SizeType.Percent, 50.0))
            pnl.ColumnStyles.Add(New ColumnStyle(SizeType.Percent, 50.0))
            AddButtons()
            Me.Controls.Add(pnl)
        End Sub
        Private Sub AddButtons()
            For i As Integer = 0 To nbRow - 1
                For j As Integer = 0 To nbColumn - 1
                    Dim btn As New Button
                    btn.Name = "btn1"
                    btn.Text = "button" + (i + 1).ToString() + (j + 1).ToString()
                    btn.Location = New Point
                    btn.Tag = New Position(j + 1, i + 1)
                    AddHandler btn.Click, AddressOf btnClick
                    pnl.Controls.Add(btn, j, i)
     
                Next
            Next
        End Sub
     
        Private Sub btnClick(sender As Object, e As EventArgs)
            Dim btn As Button = CType(sender, Button)
            Dim pos As Position = btn.Tag
            MessageBox.Show(pos.Col.ToString() + "," + pos.Row.ToString())
     
        End Sub
     
    End Class
    Public Class Position
        Public Property Col As Integer
        Public Property Row As Integer
     
        Public Sub New(xcol As Integer, yrow As Integer)
            Col = xcol
            Row = yrow
        End Sub
    End Class
    Tu peux aussi utiliser un DataGridView. C'est plus exepeditif si c'est des controles identiques comme dans l'exemple precedent .
    code exemple .vb d'un dgv auquel j'ai ajouté :
    - 2 colonnes de type Button en Mode Design
    - mis sa prop ColumnHeaderVisible=False
    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
     
     
    Public Class Form2
     
        Private Sub Form2_Load(sender As Object, e As System.EventArgs) Handles Me.Load
            DataGridView1.RowCount = 3
        End Sub
     
        Private Sub DataGridView1_CellClick(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
     
            MessageBox.Show(e.ColumnIndex.ToString() + "," + e.RowIndex.ToString())
     
        End Sub
    End Class
    bon code...

  3. #3
    Membre émérite Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Par défaut
    Bonjour et merci,

    il n'existe pas de contrôle tableau "tout fait" ?

    J'ai jeté un oeil sur le dataGridView, mais je ne peux pas afficher de lignes.

    Merci

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    plusieurs choses peuvent convenir
    avec un tablelayoutpanel tu peux mettre un control par zone, tu peux alors mettre un bouton ou un picturebox et gérer l'évènement click
    tu peux générer tout par code (y compris l'event click et la gestion de coordonnées) plutot que de poser tout à la main
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre émérite Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Par défaut
    Oui le tableLayoutPanel semble bien, mais à priori il faut mettre des contrôles dedans, j'aurais préféré un contrôle tableau avec les propriétés (x,y) pour repérer la cellule sur laquelle on clique.

    Si ça n'existe pas, bah tant pis.

    Merci

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    le datagridview permet en effet d'avoir les coordonnées lors d'un clic, et il est possible d'ajouter autant de colonnes et de lignes que tu veux

    sinon tu peux créer ton propre controle
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Réponses: 40
    Dernier message: 19/02/2020, 08h23
  2. Utiliser un control activeX VB6 sous Visual Studio
    Par yal001 dans le forum Développement Windows
    Réponses: 3
    Dernier message: 03/12/2013, 10h07
  3. [Débutant] Report : un tableau excel sous visual studio
    Par Msysteme dans le forum C#
    Réponses: 1
    Dernier message: 14/09/2012, 16h22
  4. Création d'un tableau à remplir sous visual studio
    Par marie-anne dans le forum Windows Forms
    Réponses: 3
    Dernier message: 11/10/2011, 10h23

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