如何解决我怎么能把这个 onpaint 方法放在点击功能上? c#
我正在实施此帖子 Reza Aghaei 中来自 Creating Custom Picturebox with Draggable and Resizable Selection Window 的解决方案。
我从菜单按钮触发选择控件,矩形选择工作正常,但我不知道如何触发他添加“用半透明填充框架外的花式效果的部分颜色”,我希望在按下按钮加载可调整大小的控件后发生这种情况。
那部分的代码是这样的:
private void pictureBox1_Paint(object sender,PaintEventArgs e)
{
e.Graphics.ExcludeClip(pictureBox1.Controls[0].Bounds);
using (var b = new SolidBrush(Color.FromArgb(100,Color.Black)))
e.Graphics.FillRectangle(b,pictureBox1.ClientRectangle);
}
private void selectToolStart(object sender,EventArgs e)
{
var s = 100;
var c = new FrameControl();
c.Size = new Size(s,s);
c.Location = new Point((pictureBox1.Width - s) / 2,(pictureBox1.Height - s) / 2);
pictureBox1.Controls.Add(c);
}
欢迎任何建议。提前致谢
更新:
在你们的帮助下,我得到了这个代码:
private void pictureBox1_Paint(object sender,PaintEventArgs e)
{
if (pictureBox1.HasChildren == true)
{
e.Graphics.ExcludeClip(pictureBox1.Controls[0].Bounds);
using (var b = new SolidBrush(Color.FromArgb(100,pictureBox1.ClientRectangle);
}
pictureBox1.Invalidate();
}
更新 2
接受TaW的建议 我将无效从绘制事件移动到 selectToolStart() 函数。所以这次代码保持如下
private void selectToolStart(object sender,(pictureBox1.Height - s) / 2);
pictureBox1.Controls.Add(c);
pictureBox1.Invalidate();
}
和Paint事件保持如下
private void pictureBox1_Paint(object sender,Color.Black)))
{
e.Graphics.FillRectangle(b,pictureBox1.ClientRectangle);
}
}
}
看来它完成了工作。请提供任何反馈或建议。 谢谢大家。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。