Le déplacement d'un contrôle en les faisant glisser avec la souris en C#
Je suis en train de déplacer le contrôle nommé pictureBox1 en le faisant glisser autour. Le problème est, quand il se déplace, il continue de se déplacer d'un endroit à un autre emplacement autour de la souris, mais il n'a suivre...
C'est mon code. et j'apprécierais vraiment si vous pouviez m'aider
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
bool selected = false;
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
selected = true;
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (selected == true)
{
pictureBox1.Location = e.Location;
}
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
selected = false;
}
}
OriginalL'auteur Paul Ghiran | 2013-05-05
Vous devez vous connecter pour publier un commentaire.
Tous vous avez besoin:
Je suis désolé, je n'avais pas réalisé, que j'ai écrit mon commentaire en allemand. Parfois, je ne connais pas la langue dans laquelle je suis la communication. Ma Question est, puisque vous semblez avoir une bonne connaissance avec ce genre d'INTERFACE utilisateur-Code, avez-vous une idée de comment je pourrais en douceur le mouvement du contrôle glissé un petit peu? Si il n'y a pas de solution pratique avec cette application, je vais plutôt en tenir à votre approche, parce que les autres solutions que j'ai trouvées étaient souvent mal écrit, imparfait ou irréaliste et votre solution fonctionne très bien maintenant.
Même si j'ai une bonne connaissance de cela (je havn't), et même si j'ai quelques idées de ce que vous avez demandé (je havn't), pourquoi ne pas créer une nouvelle question?
pictureBox1.Gauche = (-1 * e.X) + pictureBox1.Gauche + MouseDownLocation.X; Si quelqu'un a besoin de défilement inversé.
Merci beaucoup astef, aimé cette réponse, il m'a sauvé beaucoup de temps. J'ai fait le MouseMove générique pour un contrôle par la coulée de l'expéditeur afin que je puisse utiliser le même code pour plusieurs contrôles, les événements MouseDown travaille déjà pour des commandes multiples. Contrôle = (Contrôle)de l'expéditeur; le contrôle.Gauche = e.X + contrôle.De Gauche MouseDownLocation.X; le contrôle.Top = e.Y + contrôle.Haut - MouseDownLocation.Y;
OriginalL'auteur astef
essayez ceci pour déplacer contrôle pictureBox au moment de l'exécution à l'aide de la souris
OriginalL'auteur Pavi Muthu