Ich versuche, von Zeile # 1 bis Linie 2 in den folgenden Code zu erhalten:Weder Invalidate() noch Refresh() ruft OnPaint()
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
}
}
}
Allerdings scheint es, dass Neiter Invalidate() noch Refresh() bewirkt, dass OnPaint (PaintEventArgs e) aufgerufen wird. Zwei Fragen:
- Warum funktioniert es nicht?
- Wenn es nicht behoben werden kann: Ich möchte OnPaint (PaintEventArgs e) nur aufrufen, um auf das e.Graphics-Objekt zuzugreifen - gibt es eine andere Möglichkeit, dies zu tun?
Vielen Dank, SLC! Ich mache das zur akzeptierten Antwort. – user181813