C#中 为什么开始运行后groupBox1里没有出现图形??请高手指点

privatevoidForm1_Load(objectsender,EventArgse){Graphicsgra=groupBox1.CreateGraphics()... private void Form1_Load(object sender, EventArgs e)
{
Graphics gra = groupBox1.CreateGraphics();
Pen pen = new Pen(Color.Black, 3);
gra.DrawEllipse(pen, 100, 50, 100, 50);

}
展开
 我来答
freeeeeewind
2017-01-19 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1346万
展开全部

将作图代码移到groupBox1的Paint事件处理中

 private void groupBox1_Paint(object sender, PaintEventArgs e)
 {
    Graphics gra = groupBox1.CreateGraphics();
    Pen pen = new Pen(Color.Black, 3);
    gra.DrawEllipse(pen, 100, 50, 100, 50);
    // 加上这句,释放gra以免内存泄漏!
    gra.Dispose(); 
}

 原来代码错误的原因在于:当窗体显示后会引发groupBox1的Paint事件。这个事件用来刷新groupBox1内显示的内容的。这个事件引发的刷新,将你在Form_Load事件中做的图刷新掉了,所以,窗体显示后,你做的图看不见了!你必须在groupBox1的Paint事件中实现对groupBox1的作图!

大雅新科技有限公司
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,... 点击进入详情页
本回答由大雅新科技有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式