【发布时间】:2011-02-07 08:23:14
【问题描述】:
我试图在下面的代码中从第 1 行到第 2 行:
using System;
using System.Windows.Forms;
namespace MyNameSpace
{
internal class MyTextBox : System.Windows.Forms.TextBox
{
protected override void OnEnabledChanged(EventArgs e)
{
base.OnEnabledChanged(e);
Invalidate(); // Line #1 - can get here
Refresh();
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
System.Diagnostics.Debugger.Break(); // Line #2 - can't get here
}
}
}
但是,似乎 Invalidate() 和 Refresh() 都不会导致调用 OnPaint(PaintEventArgs e)。两个问题:
- 为什么不起作用?
- 如果无法修复:我只想调用 OnPaint(PaintEventArgs e) 以访问 e.Graphics 对象 - 还有其他方法吗?
【问题讨论】: