c# - 我可以在除 Paint 事件之外的任何其他事件中使用 Graphics 对象吗?

标签 c# winforms gdi+

我有一个带有停靠面板的 WinForm。 我覆盖了 Panel 的 Paint 事件。 我有一行设置 _graphics 对象:

private Graphics _graphics;

在重写中我初始化了 _graphics 对象:

private void GridPanel_Paint(object sender, PaintEventArgs e)
{
    _graphics = e.Graphics;

    <snip>
    …
    </snip>
}

愚蠢的部分来了,我可以在任何其他事件(如 MouseMove)中使用这个 _graphics 对象吗?

最佳答案

这取决于你所说的“使用”是什么意思。

Graphics 是一次性的。重绘后,控件会处理传递给 Paint 事件处理程序的 Graphics 实例。从那时起,处置的对象是无用的。但是缓存对该实例的引用是绝对合法的。

关于c# - 我可以在除 Paint 事件之外的任何其他事件中使用 Graphics 对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33759262/

相关文章:

c# - 有没有办法在 VB.NET 中实现类似 Caliburn 的协程,因为没有 yield 关键字

c# - Entity Framework 回滚并删除错误的迁移

c# - C# 如何将应用程序集中在父应用程序上

winapi - 是否可以直接从 GDI+ 位图进行 BitBlt?

c# - 自动修剪位图到最小尺寸?

c# - C# 中的新类型,带有设计时检查

c# - DataGrid 列 XAML

c# - 如何获取特定类型(按钮/文本框)的 Windows 窗体窗体的所有子控件?

.net - WinForms:设计与代码

c# - 我如何在 GDI+ 中将一个位图图像叠加到另一个位图图像上?