4

C# で次のような GUI を作成しました。

メイン画面には2つのボタンがあり、Button1クリックすると新しいフォームを開きたくありませんform2.show();が、同じフォームのままで表示を変更したいです。

これは、GUI 要素を非表示にし、必要に応じて他の要素を表示することで行いました。

思った通りにうまく動作しますが、デザイナーのビューでは、Form1面倒な GUI を作成する必要がありました。

私の質問は、それが良いプログラミングの実践かどうかです。そうでない場合、これを達成するための最良または推奨される方法は何ですか。

ありがとう

4

3 に答える 3

7

「Tabless」タブ コントロールを検討することをお勧めします。win-forms デザイナーを使用してインターフェイスを簡単かつ迅速に構築できるため、最近は多くの作業でこれらを使用する傾向があります。

    class TablessTabControl : TabControl
    {
        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);
        }
    }

これにより、タブ コントロールが拡張され、上部のタブが非表示になります。次に、次のようなコードを使用してプログラムでタブを変更できます。

    tablessTabControl.SelectTab("tabName");

これは私のオリジナル作品ではありません。しばらく前にウェブ上に浮かんでいるのを見つけましたが、どこで見たのか思い出せません。とにかく、これが役立つことを願っています!

于 2012-11-28T10:54:24.937 に答える
1

TabControlを使用すると、面倒な表示=true/falseシズルなしで必要なすべての「ビュー」を取得できます。

于 2012-11-28T10:28:02.993 に答える
1

異なる子コントロール View1 と View2 を作成し、フォームの状態とボタンのクリックに基づいて各コントロールを表示/非表示にすることができます。

于 2012-11-28T10:31:00.017 に答える