Selection Window / Auswahlfenster
-
Hallo!
Gibt es in .Net fertig Sachen für die Implementierung eines Auswahlfensters? So wie man es von Windows kennt?
Siehe hier:
http://farm3.static.flickr.com/2440/3746014277_8338943623_o.pngLg THE_ONE
-
Nein.
-
Schon eine Lösung gefunden???
-
doppel post
-
Gefunden nicht, aber selbst programmiert!
private bool b_lMousedown=false; private Point p2_SelectionWindow; private Point pMousedown; . . . protected override void OnPaint(PaintEventArgs e) { // If there is an image and it has a location, // paint it when the Form is repainted. base.OnPaint(e); Graphics gr = e.Graphics; if (b_lMousedown) { DrawSelectionWindow(gr); } } private void DrawSelectionWindow(Graphics g) { Pen myPen = new Pen(System.Drawing.SystemBrushes.WindowFrame); myPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot; Rectangle rec = new Rectangle(Math.Min(pMousedown.X,p2_SelectionWindow.X),Math.Min(pMousedown.Y,p2_SelectionWindow.Y),Math.Abs(p2_SelectionWindow.X-pMousedown.X),Math.Abs(p2_SelectionWindow.Y-pMousedown.Y)); g.DrawRectangle(myPen, rec); } . . . private void WorkSpace_MouseMove(object sender, MouseEventArgs e) { if (b_lMousedown) { p2_SelectionWindow.X = e.X; p2_SelectionWindow.Y = e.Y; } . . . this.Invalidate(); }
Wenn ich die linke Maustaste drücke setze ich b_lMousedown auf true. Wenn ich die Maustaste wieder loslasse setze ich diese Variable zurück auf false. Damit überprüfe ich eben ob die Maustaste gedrückt ist.
Zusätzlich speichere ich mir die Position der Maus ab zu dem Zeitpunkt wo die linke Maustaste gedrückt wurde - pMousedown.
und die aktuelle Mausposition speichere ich in p2_SelectionWindowMit diesen Daten kann man nun ein Rechteck auf den Bildschirm zeichnen, immer dann wenn die Maus bewegt wird.
Wenn jemand Verbesserungsvorschläge hätte, wäre ich sehr dankbar. Über Feedback im Allgemeinen würde ich mich sehr freuen.
Lg THE_ONE