Verschieben eines Steuerelements durch ziehen mit der Maus in C#
Ich versuche, verschieben Sie das Steuerelement namens pictureBox1, indem Sie es um. Das problem ist, wenn es sich bewegt, er bleibt in Bewegung von einem Ort zu einem anderen Ort rund um die Maus, aber es hat Folgen...
Das ist mein code. und ich wäre wirklich sehr dankbar, wenn Ihr mir helfen könntet
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;
}
}
InformationsquelleAutor Paul Ghiran | 2013-05-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Alles, was Sie brauchen:
Tut mir Leid, ich hatte nicht realisiert, dass ich schrieb meinen Kommentar in Deutsch. Manchmal bin ich mir nicht bewusst, in welcher Sprache ich bin die Kommunikation. Meine Frage war, da Sie scheinen, zu haben eine gute Kenntnisse mit dieser Art von UI-Code, haben Sie eine Idee, wie ich könnte glatt die Bewegung des gezogenen Steuerelements ein bisschen? Wenn es keine praktische Lösung, mit dieser Art der Implementierung ist, werde ich lieber auf Ihren Ansatz weiter, weil die anderen Lösungen, die ich fand, waren oft schlecht geschrieben, mangelhaft oder unpraktisch, und deine Lösung funktioniert jetzt.
Auch wenn ich über eine gute Kenntnis dieser (ich noch nicht), und selbst wenn ich habe Ideen, was sind Sie das Fragen (ich noch nicht), warum gehst du nicht erstellen Sie eine neue Frage?
pictureBox1.Left = (-1 * e.X) + pictureBox1.Links + MouseDownLocation.X; Wenn jemand braucht invertierte scrollen.
Vielen Dank astef, liebte diese Antwort, hat mich gerettet eine Menge Zeit. Ich machte das MouseMove-Generikum für eine Kontrolle durch Gießen der Absender, so konnte ich den gleichen code für mehrere Steuerelemente, die das MouseDown-arbeitet bereits für mehrere Steuerelemente. Control = (Control)sender; - Kontrolle.Links = e.X + control.Links - MouseDownLocation.X; Kontrolle.Oben = e.Y + control.Top - MouseDownLocation.Y;
InformationsquelleAutor astef
versuchen, diese zu bewegen pictureBox-Steuerelement zur Laufzeit mit der Maus
InformationsquelleAutor Pavi Muthu