0

私は C# を初めて使用し、C# で画像処理アプリケーションの GUI を設計したいと考えています。以下に示すように設計された非常に基本的な基本的なレイアウトがありますここに画像の説明を入力

ここでは、イメージ プレーンが固定され、ライブ ストリーム ビデオが表示されます。すべてのボタン フレームとサイド パネルをデザインしました。しかし、クリックするボタンごとにサイドパネルを動的に変更する方法がわかりません。たとえば、button1_1 をクリックすると、サイド パネルに何かが表示され、button1_2 にはその他のものが表示されます。どうすればそれを行うことができますか。

編集:

答えてくれてありがとう。タブ コントロールはオプションです。しかし、ボタンをクリックするたびに新しいパネルが必要です。さらにフォームを開くことができます。出来ますか?

4

3 に答える 3

4

では、見てみましょう。「TabControl」または「Panel」の配列を使用すると簡単に実行できます。

1.TabControl で実行します。複数のサブタブ内の TabControl で GUI を設計できます (方法がわからない場合はお問い合わせください)。次に、ボタンクリックイベントでそれを変更して、表示したいサブタブを作成します(つまり、他のサブタブでは表示可能になり、非表示になります)。

2.パネルの配列でそれを行います。panel[] パネルを使用できます。ボタン クリック イベントでは、他のパネルを非表示にして、必要なパネルを表示します。

回答が役に立ちますように!

    private void button1_Click(object sender, EventArgs e)
    {
        tabControl1.SelectedIndex = 0;
        tabControl1.TabPages[0].Text = "First";
    }

    private void button2_Click(object sender, EventArgs e)
    {
        tabControl1.SelectedIndex = 1;
    }

    private void button3_Click(object sender, EventArgs e)
    {
        tabControl1.SelectedIndex = 2;
    }
于 2013-01-30T01:44:36.533 に答える
2

フォームに分割コンテナーを追加することができます。

ボタンごとに UserControl を作成します。

ボタンクリックイベントのコード

//Button1Click Event
    private void button1_Click(object sender, EventArgs e)
    {
        UserControl1 m_UserControl = new UserControl1();
        splitContainer1.Panel2.Controls.Clear();
        splitContainer1.Panel2.Controls.Add(m_UserControl);
    }
    //Button2Click Event
    private void button2_Click(object sender, EventArgs e)
    {
        UserControl2 m_Usercontrol2 = new UserControl2();
        splitContainer1.Panel2.Controls.Clear();
        splitContainer1.Panel2.Controls.Add(m_Usercontrol2);
    }

実行時にパネルに表示されるユーザーコントロールを変更したい場合は、これを行うことができます。私があなたの質問を誤解した場合は、私を修正してください。

于 2013-01-30T02:17:35.360 に答える
1

WinForms では、タブ コントロールを使用して、ボタンが押されたときに選択したタブのインデックスを変更するだけです。具体的には、そのクリック イベントが発生したときです。ここで、TabControl の使用に関する優れたチュートリアルと、クリック イベントの関連付けに関するチュートリアルを示します。

編集:

これはより良いチュートリアルです。

WPF を使用せずにタブ コントロールのタブを非表示にすることはできないため、外観が気に入らない場合は、別のものを使用する必要がある場合があります。ボタンが 2 つしかないためビューが少ない場合の適切な回避策は、パネルを使用することです。ボタン 1 をクリックすると、パネル 1 が表示され、パネル 2 が非表示になります。コードは次のとおりです。

private void button1_Click(object sender, EventArgs e)
    {
        pane2.visible = false;
        pane1.visible = true;
    }

private void button2_Click(object sender, EventArgs e)
    {
        pane1.visible = false;
        pane2.visible = true;
    }

これがお役に立てば幸いです!

于 2013-01-30T02:21:02.157 に答える