2009-05-20 2 views
0

Ich schreibe eine Anwendung, wo ich ein Formular mit einem Panel habe. Ich habe bemerkt, dass, wenn ich dem Panel ein weiteres Formular hinzufüge, die Tastaturkürzel des hinzugefügten Formulars nicht mehr funktionieren.Tastaturkürzel funktionieren nicht beim Hinzufügen eines Formulars zu einem Panel C#

ich den folgenden Code verwende:

MainMenu m = new MainMenu(); 
m.TopLevel = false; 
m.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 
m.Dock = System.Windows.Forms.DockStyle.Fill; 
pnl.Controls.Add(m); 
m.Visible = true; 
pnl.ResumeLayout(); 

Gibt es funktioniert trotzdem die Tastenkombinationen zu machen?

Grüße

Antwort

0

Ich fand heraus, dass es aufgrund von Fokusproblemen war.

Ich habe seit meiner Formulare zu Benutzersteuerelementen konvertiert und die Probleme sind weg.

+0

Was meinst du damit? Was genau hast du gemacht? Ich habe das gleiche Problem ... – Muers

1

Meine erste Vermutung (und es ist total eine Vermutung) ist, dass Sie die Eltern/Besitzer übergeben müssen, wenn das Objekt Kind konstruieren, anstatt nur Eltern zuweisen ... könnten Sie uns zeigen, dass ein Teil dein Code?

Auch nur ein Blick über den Code, so scheint es seltsam, für eine MainMenu, Set Dock zu füllen ....

0

ein Formular an eine Platte in einer anderen Form hinzufügen? Dies ist kein unterstütztes Szenario. ehrlich gesagt bin ich überrascht, dass es keine Ausnahme wirft. Eine bessere Möglichkeit wäre, UserControls zu verwenden.

+0

Es funktioniert gut. Ich habe das schon oft in der Vergangenheit benutzt. Die einzige Sache ist, dass die Tastaturkürzel nicht funktionieren –

+0

Woher wissen Sie, dass es kein unterstütztes Szenario ist? –

+0

Ich gebe zu, dass ich keine Dokumentation finden kann, die explizit die eine oder andere Art angibt. Aber basierend auf dem, was ich über Windows Forms weiß, wird dies nicht unterstützt. Nur weil Sie es unter bestimmten Umständen zum Laufen bringen können, heißt das nicht, dass es unterstützt wird oder dass Sie erwarten, dass alle Funktionen korrekt funktionieren. –