winform中同样的一段代码,窗体加载事件里没有效果,而鼠标点击事件或paint有效果,???

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winform中同样的一段代码,窗体加载事件里没有效果,而鼠标点击事件或paint有效果,???相关的知识,希望对你有一定的参考价值。

Pen blackPen = new Pen(Color.Black, 1);
Point point1 = new Point(10, 10);
Point point2 = new Point(10, 50);
Point point3 = new Point(50, 50);
Point point11 = new Point(8, 12);
Point point12 = new Point(12, 12);
Point point31 = new Point(48, 48);
Point point32 = new Point(48, 52);

Graphics g = this.CreateGraphics();
g.DrawLine(blackPen, point1, point2);
g.DrawLine(blackPen, point2, point3);
g.DrawLine(blackPen, point11, point1);
g.DrawLine(blackPen, point12, point1);
g.DrawLine(blackPen, point32, point3);
g.DrawLine(blackPen, point31, point3);

string str = "100";
Font myFont = new Font("华文行楷", 12);
SolidBrush myBrush = new SolidBrush(Color.Red);
g.DrawString(str, myFont, myBrush, 52, 52);
需要写在paint事件里,我知道 但我用的是组件类,不知道怎么贴

因为窗口执行Onload的时候实际还没有显示出来,而且只执行一次,你在这里进行绘制以后 等Load完成后窗口会收到重绘的消息,这样把你画出来的东西就覆盖了.
组件不能使用this.CreateGraphics(); 组建不是控件 .
如果你要在控件里边写的话 重新控件的OnPaint方法
参考技术A 贴一下代码,瞅瞅,呵呵 参考技术B
frm.Closed+=new System.EventHandler(更新数据);

winform 窗体加载的问题,C#里不同Panel中窗体的调用

窗体不能既是 MDI 子级,又是 MDI 父级
如图,有3个窗体form1在panel1中,form2在panel2中,form3 在panel3中 (在panel2右边),其中form1的按钮控制 form2和form3的加载 ,form2中的按钮控制form3的加载
代码(form1 中):
form2 frmSchedule = new form2();
frmSchedule.MdiParent = this;
panel2.Controls.Clear();
panel2.Controls.Add(frmSchedule);
frmSchedule.Dock = DockStyle.Fill;
frmSchedule.Show(); 没什么问题 ,但到了 form2 中就有出题了

form3 frmSchedule = newform3();

frmSchedule.MdiParent = this;
panel1.Controls.Clear();
panel1.Controls.Add(frmSchedule);
frmSchedule.Dock = DockStyle.Fill;
frmSchedule.Show();

怎么都出错,不是报MDI 容器窗体必须位于顶层就是报窗体不能既是 MDI 子级,又是 MDI 父级 的错误 , 都是换成独立的 panel,在form2中又找不到主窗体(就是父窗体中的panel 这个控件),折腾了1晚上实在搞不定啊,望哪位能帮帮小弟啊

参考技术A 很明白啊 你的form2既是form1的子窗体 又是form3的父容器 这就会报错
你添加form2为form1的子窗体时 后面架子啊form3的代码还未执行 所以不会报错
再加载form3时候 form2已经是某个窗体(form1)的子窗体了 因此form2就不能是mdi父容器了 所以就报错了
你要做成什么效果说出来 也许是你的实现思路有问题 一般情况不会再子窗体中再添加子窗体的追问

我做了调整了,panel2和panel3同属主窗体了,现在是panel2中的按钮如何控制panel3中窗体的变化了

追答

同form1按钮控制form2相同呀 真心不知道你要干嘛~~~~~也不好给你具体的意见

参考技术B 看了半天,不知道楼主你的需求是什么?

以上是关于winform中同样的一段代码,窗体加载事件里没有效果,而鼠标点击事件或paint有效果,???的主要内容,如果未能解决你的问题,请参考以下文章

winform 窗体加载的问题,C#里不同Panel中窗体的调用

winform窗体——控件

winform 窗体加载的问题,C#里不同Panel中窗体的调用

winform运行后看不到窗体,我在窗体加载事件里下了断点,结果根本没有运行到加载事件,求解啊

C# - Winform: 在窗体加载的过程中截获异常,如何不让窗体显示出来。

winform中怎么使用EventLog控件记录事件日志