C#方面splitcontainer和panel的问题

第一种在Form1中添加一个panel名为panel,在form加载时创建Graphic对象gc,调用gc.DrawPolygon()可以绘画。privatevoidFo... 第一种在Form1中添加一个panel名为panel,在form加载时创建Graphic对象gc,调用gc.DrawPolygon()可以绘画。

private void Form1_Load(object sender, EventArgs e)
{
gc = this.panel.CreateGraphics();
}
public void draw()
{ gc.DrawPolygon()}
第一种在Form1中添加一个splitContainer1控件,里面2个panel分别为panel1和panel2,在form加载时创建Graphic对象gc,调用gc.DrawPolygon()不可以绘画,但是把创建对象gc放到draw()方法中可以绘画。
Form1.draw();
private void Form1_Load(object sender, EventArgs e)
{
gc = this.splitContainer1.Panel2.CreateGraphics();
}
public void draw()
{ gc.DrawPolygon();
}
我想问的是:是不是因为有个splitcontainer1这个控件在作怪,我刚学,具体问题请大神分析一下。
展开
 我来答
超大蒲公英
推荐于2016-03-10 · TA获得超过741个赞
知道小有建树答主
回答量:758
采纳率:75%
帮助的人:737万
展开全部
应该是你新加的splitContainer1控件,挡住了原来的panel控件,所以看不到。而panel2是在最前边的,所以在panel2绘制是可以看到的。
另外,不要把gc声明为成员变量,也不要在load中创建。
就在paint事件中绘制就可以了。
追问

我把gc放到全局变量中,为什么会报上面的错误啊            为什么splitcontainer是个字段


上面二图片都没法完成实例Graphics对象。  我把它放到form1_paint()事件中还是没办法绘图。

追答
gc不能直接初始化,非要用全局变量,可以在load中赋值。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
超悦模电
2014-10-23 · TA获得超过219个赞
知道答主
回答量:122
采纳率:100%
帮助的人:78.2万
展开全部
你把splitcontainer1控件的背景色调成透明试试:splitcontainer1.backgroundColor = Color.transparent; 或者直接在splitcontainer1的属性列表里设置backgroundColor属性。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
elfinmanc
2014-10-23 · 超过31用户采纳过TA的回答
知道答主
回答量:82
采纳率:0%
帮助的人:37万
展开全部
你可以试试不用FORM LOAD,用窗口激活时才画图试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式