2017-06-10 3 views
0

私はクラスメイト(私は10年生です)にC#でアプリケーションアプリケーションを作って、ワイヤレスデバイスコントローラインターフェイスがどのように機能するかを考えます。私はプログラムのほとんどを書く方法を知っていますが、私は1つのことをやる方法を知らない。C# - プログラムで作成したときにパネルをボタンに関連付けます。

ボタンをプログラムで作成したいと思います。作成したボタンをクリックすると表示/非表示にするパネルを関連付けます。誰か助けてくれますか?

私はあなたに何かを伝えるのを忘れました。パネルはプログラムでも作成する必要があります。

+0

パネルは動的に作成されていますか? –

+0

重複btw https://stackoverflow.com/questions/15323733/created-button-click-event-c-sharp https://stackoverflow.com/questions/4291077/add-events-to-controls-added-dynamically – CShark

+0

[動的に追加されたコントロールにイベントを追加](https://stackoverflow.com/questions/4291077/add-events-to-controls-added-dynamically) – CShark

答えて

0

はパネルでも、動的に作成されますか? - Idle_Mind

@Idle_Mindはい、それです。 DannyDSBオフィシャル

最も簡単な方法は、ボタンのTag()プロパティにPanelへの参照を保存することです。ここにばかげた例があります:

private void button1_Click(object sender, EventArgs e) 
{ 
    Panel pnl = new Panel(); 
    pnl.BorderStyle = BorderStyle.FixedSingle; 
    pnl.BackColor = Color.Red; 

    Button btn = new Button(); 
    btn.Text = "Toggle Panel"; 
    btn.Tag = pnl; 
    btn.Click += delegate { 
     Panel p = (Panel)btn.Tag; 
     p.Visible = !p.Visible; 
    }; 

    flowLayoutPanel1.Controls.Add(btn); 
    flowLayoutPanel1.Controls.Add(pnl); 
} 
0

まず、パネルの名前が必要です。可視性を変更するにはvisibilityプロパティを設定する必要があります

ボタンクリックでこれを行うには、イベントハンドラをアタッチする必要があります。最初に、簡単にするために、新しく作成したボタン "myButton"を呼び出したと仮定しましょう。

まずあなたがハンドラ関数

void myButton_Click(object sender, RoutedEventArgs e){ 
    panel.visibility = whatever; 
} 

を作成し、後でパネルを作成します

myButton.Click += myButton_Click; 
+0

ありがとうございますが、ボタンのようにプログラムでパネルを作成する必要があることを忘れてしまいました。あなたはそれらの間の関連付けをする方法を知っていますか? –

+0

これはまったく同じです。パネルオブジェクト(この場合は "panel"という名前)を作成し、それをクラス全体で使用可能な変数に格納するだけです。 – CShark

1

をクリックハンドラに機能を割り当てる:

var panel = new Panel(); 
this.Controls.Add(panel); 

は、ボタンを作成します。

var button = new Button(); 
this.Controls.Add(button); 

は、ボタンにイベントハンドラを追加します。

button.Click += (o,e) => 
{ 
    panel.Visible = !panel.Visible; 
}; 
+0

彼はそれをパネルに関連付けたいと思っています。代わりに 'Panel.Controls'を使用するのでしょうか? – Icepickle

+0

私はイベントハンドラとの関連付けをしたいと思っています。それ以外の場合、パネルにボタンを追加すると、最初のクリック後に消えます。 – ushould

+0

もそうです:) – Icepickle

関連する問題