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

Visual Studio Discussion :

Comment déplacer une image d'une PictureBox vers une autre?


Sujet :

Visual Studio

  1. #1
    Candidat au Club
    Homme Profil pro
    adjoint technique territorial
    Inscrit en
    Février 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : adjoint technique territorial
    Secteur : Service public

    Informations forums :
    Inscription : Février 2017
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Comment déplacer une image d'une PictureBox vers une autre?
    Bonjour à tous,

    j'essaie de programmer un petit jeu sur Visual Studio 2010. C'est un jeu de plateau un peu comme un jeu de dames. Il y a 63 cases (PictureBox) et 8 pions numérotés de 1 à 8.

    J'ai mis 8 checkbox qui correspondent à mes 8 pions et 4 boutons (haut, bas, gauche, droite)
    Est-il possible de selectionner une image (un pion) dans une PictureBox à l'aide d'une CheckBox et de la déplacée d'1 case à l'aide d'un bouton (haut, bas ,gauche, droite)

    Par exemple, je voudrais choisir le pion 6 qui se trouve dans la PictureBox x et voudrais la déplacer dans la PictureBox x+1

    Je galère là dessus depuis 15 jours, impossible de trouver une solution. Je m'en remet à vous.

    Merci d'avance pour vos réponses

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    question trop vague, il y a des tas de possibilités et on ne connait pas ton code actuel
    de plus on ne peut pas prendre le temps de coder pour toi

    en plus un checkbox et un bouton pour déplacer un truc au lieu d'un drag drop ca reste compliqué
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Candidat au Club
    Homme Profil pro
    adjoint technique territorial
    Inscrit en
    Février 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : adjoint technique territorial
    Secteur : Service public

    Informations forums :
    Inscription : Février 2017
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Désolé, je vais essayer d'être plus clair. Est il possible de définir dans quelle PictureBox se trouve une image a l'aide d'une CheckBox?
    j'ai nommé mes 63 picturebox "Pctb" suivi de numéro allant de 11 à 79, (11 étant la premiere case: ligne 1 colonne 1 et 79 la derniere case: ligne 7 colonne 9) et mes 8 pions sont nommés "J1F" suivi de numéro allant de 1 à 8.
    J'ai essayé le code suivant

    CheckBox6_click
    For i = 11 to 79
    if Pctb & i = xoudouqi.my.resource.J1F6 Then
    Pctb & i .select
    End if
    Next

    je sais ce code est tout pourri mais je ne sais absolument pas comment faire.
    PS j'ai déjà programmé ce jeu en VBA d'Excel sur une feuille de calcul et il fonctionne tres bien, mais je n'ai pas utilisé de PictureBox

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    tu es parti sur une mauvaise piste par méconnaissance du langage
    utiliser les noms des controles pour les manipuler c'est très années 90
    avec de la POO tu peux faire la même chose avec 10 ou 20 fois moins de code ...

    le tablelayoutpanel en windows forms permet d'adresser un controle par ses coordonnées par exemple, c'est plus simple
    un usercontrol pourrait aussi contenir des coordonnées en propriété
    les collections c'est bien pratique aussi

    sinon ce qu'il te manque c'est peut etre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim pctbox = directcast(parent.controls(nom_du_control),picturebox)
    pctbox.image =
    parent peut etre me si les controles sur le form (ca peut etre un container genre un panel)
    nom_du_control est un string, qui peut être composé d'une racine et d'un nombre concaténés
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Candidat au Club
    Homme Profil pro
    adjoint technique territorial
    Inscrit en
    Février 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : adjoint technique territorial
    Secteur : Service public

    Informations forums :
    Inscription : Février 2017
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    salut merci pour ta réponse, mais y a un truc que je n'ai pas du bien faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub rat1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rat1.CheckedChanged
            Dim i As Integer
            Dim pctbox = DirectCast(Parent.Controls("Pctb" & i), PictureBox)
            For i = 11 To 79
                If pctbox.Image = XOU_DOU_QI.My.Resources.J1F1 Then
                    pctbox.Select()
                End If 
            Next i
        End Sub
    la ligne 5 est soulignée et en commentaire il y a: l'opérateur '=' n'est pas défini pour les types 'system.drawing.image' et 'system.drawing.bitmap'

    pour ce qui est de tablayoutpanel et usercontrol je ne connais pas, mais si je galère trop j’essaierais de me pencher sur la question

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    là t'es en train d'écrire n'importe quoi
    i vaut 0 et tu l'utilises directement sans lui donner de valeur

    après pour les types par référence c'est is au lieu de =

    donc au lieu d'écrire du code improvisé, va lire un cours sur vb.net, sinon tu n'arriveras à rien
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Réponses: 18
    Dernier message: 08/03/2013, 15h25
  2. Conversion d'une image en mode RGB en une image en niveau de gris
    Par frisou65 dans le forum Calcul scientifique
    Réponses: 9
    Dernier message: 15/02/2012, 17h20
  3. Réponses: 2
    Dernier message: 23/05/2010, 12h45
  4. Réponses: 5
    Dernier message: 17/04/2008, 18h44
  5. Comment copier une image d'un Axes vers un autre Axes
    Par miss_angel dans le forum Images
    Réponses: 1
    Dernier message: 14/02/2008, 12h56

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