当我点击鼠标左键并拖动时,我想要绘制虚线框的winform。释放鼠标左键时,框架应消失。我可以用ControlPaint.DrawReversibleFrame方法做到这一点。但是,每次不在winform中,它都会在winform之外进行。似乎使用屏幕作为绘画区域而不是winform的控制绘画方法。我是对的吗?
如果我的假设是正确的,你怎么告诉controlpaint使用winform作为它的绘画区域。
谢谢,
答案 0 :(得分:1)
ControlPaint通过在桌面上绘图来“欺骗”。
尝试的方法是自己观察尺寸。一旦你到达你的控制边界,停止呼叫它。
<强>更新强>
听起来您不一定正确地转换尺寸。
这是一个总是在panel1控件上绘制的简单示例:
private void panel1_Paint(object sender, PaintEventArgs e) {
ControlPaint.DrawReversibleFrame(
new Rectangle(panel1.PointToScreen(new Point(32, 32)), new Size(64, 64)),
panel1.BackColor,
FrameStyle.Dashed);
}