C# – 表单构造函数中的代码未执行
C#相对较新;希望我只是忽略了一些简单的事情.
我有一个名为’Exercise1’的表单,其中包含一个名为’drawingArea’的图片框和几个按钮. Exercise1的构造函数的代码如下: public Exercise1() { InitializeComponent(); paper = drawingArea.CreateGraphics(); balloon = new Balloon("redBalloon",Color.Red,drawingArea.Width / 2,drawingArea.Height / 2,30); paper.Clear(Color.White); balloon.Display(paper); } ... ‘paper’和’balloon’在构造函数上方创建为全局变量,用于表单上的其他方法. ‘paper’和’balloon’都在构造函数中在表单上定义的其他方法中初始化. 无论出于何种原因,命令 paper.Clear(Color.White); 和 balloon.Display(paper); 哪个应该清除图片框并显示一个红色椭圆,不执行(至少可见).是什么赋予了? 更新: private void button1_Click(object sender,EventArgs e) { int exSelector = (int)numericUpDown1.Value; switch (exSelector) { case 1: Exercise1 form1 = new Exercise1(); form1.Show(); break; ... @Sean Dunford:是的,是的. 更新:此更改的代码按预期工作: public Exercise1() { InitializeComponent(); paper = drawingArea.CreateGraphics(); drawingArea.BackColor = Color.White; drawingArea.Paint += new PaintEventHandler(this.drawingArea_Paint); balloon = new Balloon("redBalloon",30); } private void drawingArea_Paint(object sender,PaintEventArgs e) { e.Graphics.Clear(Color.White); balloon.Display(e.Graphics); } ... 感谢您的帮助! 解决方法
你不能在构造函数中绘图.要进行正确的绘图,您需要在屏幕上显示该表格.您可以尝试使用Shown事件进行渲染(但是在重绘表单时可能会丢失).
通常最好的方法是在构造函数中设置所需的任何标志,然后使用表单的 如果您尝试进行自定义绘图(在 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |