Je suis en train de programmer un jeu de cartes, quand je faisais la partie visuelle j'avais du mal à déplacer la carte dans un panneau d'un endroit à un autre, l'image clignote et bouge partout quand j'essaie de déplace le.Problème avec le Picturebox en mouvement
C'est mon code .....
public partial class Form1 : Form
{
bool clicked = false;
public Form1()
{
InitializeComponent();
pictureBox1.ImageLocation = @"c:\kingHearts.png";
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
}
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
clicked = true;
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (clicked)
pictureBox1.Location = e.Location;
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
clicked = false;
}
}
Alors quel est le problème, tout le monde peut aider plz ....
Thanx BillW cela fonctionne. mais j'ai encore un pense, si je veux ancrer la carte à un autre panneau sur realeas j'ai utilisé ce qui suit mais je manque la condition ...? private void pictureBox1_MouseUp (expéditeur d'objet, MouseEventArgs e) { if() // Quelle est la condition doit être 'contain' !! { pictureBox1.Left = panneau1.Gauche; pictureBox1.Top = panel1.Top; } } – Waleedoo
@Waleedoo, Lorsque la souris se lève, après le déplacement d'une "carte", seule la "carte" reçoit un mouvement de souris: vous devez écrire du code pour tester quelle "fente de carte" "s'insérer". Utilisez la méthode 'InterSectsWith' de la classe Rectangle pour vérifier le chevauchement: if (pictureBox1.Bounds.IntersectsWith (panel1.Bounds)) {// match trouvé} Une stratégie typique: make a List: faire un 'foreach sur cette liste pour trouver quel conteneur de cartes il devrait "s'enclencher": si aucune correspondance: remettre la carte dans sa position d'origine. "Snap" à un match est simple: il suffit de définir les limites de la carte aux limites du "slot" correspondant. –
BillW