Visual Studio 2008フォームデザイナーでPSのレイヤーのように1つのパネルを非表示にするにはどうすればいいですか?それ以外の場合は、ユーザーがクリックしなければならない複数の「スクリーン」を設計するための別の優れた方法をお勧めしますか?複数のパネルを持つWindows.Formをデザインする - > PSレイヤーのように1つのパネルを非表示にする方法
答えて
最近のプロジェクトでthis Wizardコードを使用しましたが、うまくいきました。
これは基本的な経験を提供します。
何を説明するウィザードです、そしてあなたは私が私が私のUI内の同一空間に複数のパネルを持つようにしたいと私は切り替えたい場合がある場合、しかしEric J.
からのアプローチを調査する場合がありますデザイナーの間で、私はTabControlを使用して、TabControlのタブを隠すのが好きです。これにより、設計時にUIを管理しやすくなり、実行時にタブ間を切り替えるのがかなり簡単になります。
非常に簡単なHiddenTabsControlというTabControlから派生したカスタムコントロールを作成しました。クラスはWndProcをオーバーライドし、TabControl基本クラスで他のすべてを処理できるようにします。あなたがやらなければならないことは、次のとおりです。
- 、カスタムコントロールを選択して、プロジェクトに
- を新しい項目の追加名前それがHiddenTabsControlのようなもの。
- 基本クラスをTabControlに変更し、Visual Studioが追加したコンストラクタとOnPaintオーバーライドを削除します。
コピークラスにWndProcメソッドのために、このオーバーライド:
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);
}
}
は今、あなたはデザイナーでタブを変更することができ、簡単にUIを設計し、コードの中であなたは、必要に応じてタブを変更するイベントを処理することができます。選択したタブを変更すると、簡単に行われます:タブを除去する
this.hiddenTabsControl.SelectedTab = this.tabPageYouWantVisible;
1つの副作用は、コントロールが構築されたときにタブが占めるスペースです。それらを削除すると、HiddenTabsControlが占有する領域が縮小されて変更されます。私は通常、HiddenTabsControlのアンカーを一番下に収縮させないように設定しました。
もう少しエレガントですばやくハックするアプローチは、ランタイムまでパネルを親フォームに追加しないことです。その際、デザイナーは、パネルがコンパイル前にどこに属しているのかわからず、表示されません。例えば
、あなたが親フォームにコントロールを追加コードのブロックを見つける:
//this->Controls->Add(this->panel_X);
this->Controls->Add(this->tabControl);
this->Controls->Add(this->menuStrip_topMenu);
コメントやフォームがロードされたときに発生するイベントへのハンドルを見つけ、その後、声明を削除します。
this->Load += gcnew System::EventHandler(this, &MainForm::MainForm_Load);
その後、イベントハンドラの定義では、フォームにコントロールを追加します。
System::Void MainForm_Load(System::Object^ sender, System::EventArgs^ e) {
...
...
this->Controls->Add(this->panel_X);
}
は、私がこれを行うことにより、任意の望ましくない副作用を経験していないが、誰もがしないように十分な理由を持っている場合、私はそれを聞いてに興味があると思います。
- 1. jQueryタブ、ただ1つのパネルを持つ複数のタブ
- 2. 1つのパネル(DockPanel)の内側をクリックして表示するようにusercontrolを実装する方法は?
- 3. 1つの更新パネル対複数の更新パネル
- 4. パネルを非表示にするamchart
- 5. フォーム(パネル)を非表示にする
- 6. 複数のパネルを1つのフォームで処理する
- 7. 1つのブートストラップがアクティブなときにパネルを非表示にする方法は?
- 8. 複数のデータソースを持つパネルを作成するextjs
- 9. netbeanのjframeにある別のパネルの別のパネルのボタンをクリックしてパネルを表示する方法java
- 10. シャイニーで条件パネルを非表示にする方法は?
- 11. Javaでパネルを非表示にする方法
- 12. Windowsフォームですべてのパネルを非表示にする方法は?メニューストリップと複数のパネルコンテナを使用して、私のWindowsアプリケーション、パネルを手動で名前を渡すことによって、すべてのパネルを非表示にするメニューオプションに</p> <p>に依存表示されて
- 13. 1つのページに複数のハイチャートグラフを表示する方法
- 14. 複数のチェックボックスを1つのラベルに表示する方法
- 15. マイクロストラテジーで2つのパネルに1つのフィルターを適用する
- 16. JQueryパネル非表示
- 17. ソースツリー内の非表示パネル
- 18. JFrameは1つのパネルを表示していますが、他のパネルは表示していません
- 19. 同じフレームに2つのパネルを表示する
- 20. Telerik Report - テーブル/リストが空の場合にパネルを非表示にする方法
- 21. ShinyのbsCollapseパネルの表示/非表示
- 22. magentoの管理パネルの商品価格を非表示にする方法
- 23. 1つのフレームに複数のパネルがあるとエラーが発生する
- 24. 複数の変数を1つのSQLのように表示
- 25. WooCommerceのオーダーセクションを管理パネルから非表示にする
- 26. 1つのWindowsフォームパネルで1つのCsharpパネルで複数のフォームを使用するには?
- 27. 複数の更新パネル:ポストバックをトリガーした1知る方法
- 28. jQuery複数の非表示パネルの問題
- 29. これは1つのパネルに複数のコンポーネントをオーバーレイする適切な方法ですか?
- 30. コンテンツを持つパネルをフェードイン/アウトする方法#
+1。これは素晴らしいシンプルな解決策です。 (あなたが右の焦点を置いている場合はCtrl + Tabキーは間違いなく動作し、矢印キー)のにあなたはまだ、キーボードでタブを切り替えることができます。 – Joey
また、MultiLineプロパティを常に「true」に設定したい場合は、タブバーをスクロールする矢印が表示されますが、クリックすることはできません。 – Joey
この方法は、モノと移植性がありません。私は以前このヒントを発見した – Luca