Download the projectCome fare uno strumento di selezione In C#
Sto cercando di fare un pannello con un colore di sfondo, che dovrebbe essere in grado di trarre in runtime quando l'utente tiene premuto il pulsante sinistro del mouse e sposta in giro. Tutte le opere trovano quando l'utente è a partire da in alto a sinistra e andare a in basso a destra, proprio come l'immagine mostra:
ma voglio che l'utente sia in grado di rendere il pannello da basso a destra in alto a sinistra. Proprio come quando si seleziona qualcosa sul vostro computer con il mouse
Ecco il mio codice per ora:
public void parent_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
Point tempLoc = e.Location;
this.Location = new Point
(
Math.Min(this.Location.X, tempLoc.X),
Math.Min(this.Location.Y, tempLoc.Y)
);
this.Size = new Size
(
Math.Abs(this.Location.X - tempLoc.X),
Math.Abs(this.Location.Y - tempLoc.Y)
);
this.Invalidate();
}
}
penso che questo è il posto dove ho sbagliato, e io semplicemente non posso trovare l'algoritmo giusto per esso:
this.Size = new Size
(
Math.Abs(this.Location.X - tempLoc.X),
Math.Abs(this.Location.Y - tempLoc.Y)
);
ma se io uso un rettangolo che funziona benissimo, ma io voglio che il mio pannello di essere in grado di farlo pure.
immediatamente premendo domanda : stai cercando di fare un programma di disegno? – Ryan
no. solo cercando di effettuare un controllo di selezione :) – chrs
La selezione sarà dietro o sopra gli altri controlli? – Ryan