Wie kann ich ein Panel in Visual Studio 2008 Formular-Designer wie eine Ebene in PS ausblenden? Kann jemand sonst eine andere bessere Methode empfehlen, mehrere "Bildschirme" zu entwerfen, die der Benutzer durchklicken muss?Entwerfen von Windows.Form mit mehreren Panels -> So blenden Sie ein Panel (wie eine PS-Ebene)
Antwort
Ich verwendete this Wizard Code in einem aktuellen Projekt und es hat gut funktioniert.
Es bietet die grundlegende Erfahrung, nach der Sie suchen.
Was Sie beschreiben, ist ein Assistent, und man könnte den Ansatz von Eric J.
jedoch untersuchen wollen, wenn ich Fälle, wo ich mehrere Platten im gleichen Raum in meinem UI und ich möchte wechseln haben wollen zwischen ihnen im Designer verwende ich gerne ein TabControl und verstecke die Tabs auf dem TabControl. Dies erleichtert die Verwaltung der Benutzeroberfläche zur Entwurfszeit, und der Code lässt sich zur Laufzeit relativ einfach zwischen den Registerkarten wechseln.
Ich habe ein benutzerdefiniertes Steuerelement erstellt, das von TabControl namens HiddenTabsControl abgeleitet wird, das sehr einfach ist. Die Klasse überschreibt nur WndProc und lässt die TabControl-Basisklasse alles andere behandeln.
- ein neues Element zu Ihrem Projekt hinzufügen: Alles, was Sie tun müssen, ist.
- Ändern Sie die Basisklasse in TabControl, entfernen Sie den Konstruktor und das OnPaint-Override, das Visual Studio hinzugefügt hat.
Kopieren Sie diese Überschreibung für WndProc in die Klasse:
protected override void WndProc(ref Message m) { // Hide tabs by trapping the TCM_ADJUSTRECT message if (m.Msg == 0x1328 && !DesignMode) { m.Result = (IntPtr)1; } else { base.WndProc(ref m); } }
Jetzt können Sie Registerkarten im Designer ändern und die UI-Design einfach und in dem Code können Sie Ereignisse behandeln Registerkarten nach Bedarf zu ändern. die ausgewählten Registerkarte Ändern ist leicht getan mit:
this.hiddenTabsControl.SelectedTab = this.tabPageYouWantVisible;
Ein Nebeneffekt die Registerkarten zu entfernen, ist der Raum, dass die Tabs einnehmen, wenn die Steuer aufgebaut ist. Wenn Sie sie entfernen, ändert sich der von HiddenTabsControl belegte Platz, indem er verkleinert wird. Normalerweise setze ich den Anker des HiddenTabsControl auf den unteren Rand, damit er nicht schrumpft.
Ein anderer, weniger eleganter, aber schneller Hack-Ansatz besteht darin, das Panel nicht einfach dem übergeordneten Formular bis zur Laufzeit hinzuzufügen. Der Designer hat dabei keine Ahnung, wo das Panel vor der Kompilierung liegt und wird nicht angezeigt.
Zum Beispiel den Codeblock, in dem Sie Steuerelemente auf das übergeordnete Formular hinzuzufügen:
//this->Controls->Add(this->panel_X);
this->Controls->Add(this->tabControl);
this->Controls->Add(this->menuStrip_topMenu);
Kommentar oder die Aussage entfernen, finden Sie den Griff auf das Ereignis, das auftritt, wenn das Formular geladen wird:
this->Load += gcnew System::EventHandler(this, &MainForm::MainForm_Load);
Dann in der Definition der Event-Handler, fügen Sie das Steuerelement dem Formular:
System::Void MainForm_Load(System::Object^ sender, System::EventArgs^ e) {
...
...
this->Controls->Add(this->panel_X);
}
Ich habe damit keine unerwünschten Nebenwirkungen erlebt, aber wenn jemand einen guten Grund dafür hat, würde ich mich dafür interessieren.
- 1. Ein Update-Panel im Vergleich zu mehreren Update-Panels
- 2. So behandeln Sie ein Multi-Panel-Layout
- 3. So blenden Sie eine Navigationsleiste aus?
- 4. So blenden Sie eine Spalte in yii
- 5. So blenden Sie Tabellen mit Optionsfeldern ein und aus?
- 6. So entwerfen Sie ein lineares GUI-Programm
- 7. So entwerfen Sie eine Empfehlung Seite
- 8. So blenden Sie die Bildlaufleiste von UICollectionView
- 9. So erstellen Sie ein reduzierbares Panel in WPF
- 10. Wie man eine Schaltfläche von einem Panel auf ein anderes Panel zieht und ablegt?
- 11. So blenden Sie ein reduziertes Element aus, wenn ein anderes angezeigt wird
- 12. Wie verstecken Sie ein leeres Panel?
- 13. So blenden Sie die Stapelausgabe aus
- 14. So blenden Sie das Stack-Bedienfeld in wpf ein mvvm
- 15. So blenden Sie das Dock-Symbol aus
- 16. So blenden Sie die Statusleiste aus?
- 17. So blenden Sie gepunktete Linien in QTreeWidget
- 18. Wie würden Sie ein RESTful Abstimmungssystem entwerfen?
- 19. Wie blenden Sie die Bildlaufleiste mit JavaScript
- 20. So blenden Sie eine bestimmte Spalte in Android
- 21. ASP.Net: Asynchrones Update-Panel Laden mit zwei Update-Panels
- 22. So blenden Sie den Inhalt eines Filters mit CSS aus
- 23. So entwerfen Sie einen ungefähren Lösungsalgorithmus
- 24. So entwerfen Sie einen verteilten node.js Webserver
- 25. Entwerfen Sie eine Mini-Skriptsprache
- 26. So blenden Sie die Navigationsleiste zurück Schaltflächentitel von AppDelegate
- 27. So blenden Sie <div></div> aus, wenn der Eingabetext null ist
- 28. So entwerfen Sie meine Mongo-Datenbank
- 29. Verwenden von Google Design Library So blenden Sie die FAB-Schaltfläche ein Scrollen Sie nach unten?
- 30. So blenden Sie Akkordeons beim Laden von Seiten aus?
+1. Das ist eine wunderbare einfache Lösung. Sie können jedoch immer noch Tabs mit der Tastatur wechseln (Strg + Tab funktioniert definitiv und Pfeiltasten, wenn Sie den Fokus richtig platzieren). – Joey
Sie möchten auch, dass die MultiLine-Eigenschaft immer auf 'true' gesetzt ist. Andernfalls werden die Pfeile zum Scrollen der Registerkartenleiste angezeigt, obwohl Sie nicht darauf klicken können. – Joey
Diese Methode ist nicht mit Mono übertragbar. – Luca