Eli*_*ior 1 .net c# winforms form-load
加载表单时,CreateGraphics()不应该返回图形对象吗?
我的意思是,在 Form1_Load 事件上我可以编写以下内容吗?
Graphics x;
private void Form1_Load(object sender, EventArgs e)
{
x = this.CreateGraphics();
}
Run Code Online (Sandbox Code Playgroud)
如果不是,那为什么?
我认为当您创建一个新表单时,构造函数会启动该表单的所有对象。那么为什么不包括图形对象呢?
我这么问是因为当我尝试在 form_load 上绘制时,它不会显示我绘制的内容。
主要原因是:我想创建一个带有棋盘的游戏 - 因此当用户单击新游戏时 - 首先 - 我将启动棋盘并绘制它。在onPaint事件中我只想绘制面板的当前状态。所以我认为板的初始状态应该在formLoad事件上绘制。
您不应该以这种方式使用 Graphics 对象;您应该将它的每次使用都包含在 using 块中,或者确保在每组绘图操作之后将其丢弃。您此处的代码将留下不必要的 Graphics 对象。
简要示例:
private void MyonPaintOverload()
{
using(Graphics x = this.CreateGraphics())
{
// draw here...
}
}
Run Code Online (Sandbox Code Playgroud)
另外,绘图也Form_Load()不起作用,因为此时窗口实际上并不可见。基本上没有什么可以借鉴的。
是的,您通常需要在每个周期重新绘制整个内容- 因为像将另一个窗口拖过您的窗口这样简单的事情就会“擦除”您的绘图,并且当另一个窗口被移开而使其无效时,您需要重新绘制所有内容您手动绘制的。
| 归档时间: |
|
| 查看次数: |
2933 次 |
| 最近记录: |