Kraft schaffen Griff für Steuer
Frage
Ich bin derzeit ein stilles Druckmodul zu schaffen. Die Stromsteuer Ich verwende ist, es macht Sie sicher, dass der Steuergriff ist bereits (IsHandleCreated
) erstellt. Ich tat alles, was das überhaupt ohne Glück zu betrügen.
Haben Sie Ideen im Kopf haben, wie kann ich einen Handle für das Steuerelement erstellen, ohne dass auf dem Bildschirm angezeigt wird?
Lösung
Versuchen CreateParams
Eigenschaft Getter zu überlasten. In den WS_VISIBLE
Flag löschen.
Andere Tipps
Sie haben die , um Griff Eigenschaft (das Ergebnis in einem Dummy-Variablen oder etwas). Schauen Sie in Reflector; zwingt es Schöpfung zu behandeln.
Ich hatte das gleiche Problem mit einigen anderen Kontrollen und verwendet, um die Control.CreateControl()
Methode:
private void CheckForExistingHandle(Control control)
{
if (!control.IsHandleCreated)
control.CreateControl();
}
Aber ich weiß nicht, wie es mit einem Druckmodul funktioniert.
Ich löste dieses lästige Griff Erstellung Problem durch Einstellungen der WS_VISIBLE von CreationParams. Sie können entweder die CreationParams Eigenschaft Kontrolle außer Kraft setzen oder die Createmethode mit einer geeigneten CreateParams Instanz aufrufen. Sehen Sie sich die Link rel="nofollow
Private Methode Create Aufruf wird die Arbeit tun.
MethodInfo ch = frm.GetType().GetMethod("CreateHandle", BindingFlags.NonPublic | BindingFlags.Instance);
ch.Invoke(frm, new object[0]);