我有一个带有一些用户控件的Flow Layout面板。 我想使用鼠标选择这些控件,就像在Windows文件浏览器中使用的一样。 我试过这些:https://support.microsoft.com/en-us/kb/314945 但它非常闪烁,没有用(我可能错了,请纠正我)。 任何好的例子都可以。
答案 0 :(得分:0)
绘制橡皮筋矩形的方法如下:
private void panel1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
panel1.Refresh();
using (Graphics g = panel4.CreateGraphics())
{
Rectangle rect = GetRectangle(mdown, e.Location);
g.DrawRectangle(Pens.Red, rect);
}
}
}
private void panel1_MouseDown(object sender, MouseEventArgs e)
{
mdown = e.Location;
}
它使用辅助函数:
static public Rectangle GetRectangle(Point p1, Point p2)
{
return new Rectangle(Math.Min(p1.X, p2.X), Math.Min(p1.Y, p2.Y),
Math.Abs(p1.X - p2.X), Math.Abs(p1.Y - p2.Y));
}
我没有得到任何闪烁。如果你这样做,也许你编写了Paint
evetn,你可能想要使用双缓冲Panel
:
class DrawPanel : Panel
{
public DrawPanel()
{
DoubleBuffered = true;
}
}