0

ユーザーが販売するアイテムを入力するwinformプロジェクトを作成しています。ユーザーが販売画面に入ると、ユーザーが提供したデータからいくつかのボタンが生成されます。各ボタンのクリック イベントをキャッチする必要があります。

例を挙げると: データテーブル内:

  • コカ・コーラ 2.00$
  • ペプシ 2.50$
  • ダイエットペプシ 3.00$
  • ペプシマックス 1.50$

ユーザーがアイテムと価格を入力するため、表示されるアイテムの正確な数はありません。

ユーザーがコカ・コーラのボタンを 2 回押し、ペプシのボタンを 1 回押した場合、フォームでそれらをリストして合計を伝える必要があります。

4

3 に答える 3

3

ボタンの数が不確定であるため、user2353972 の例が示すように、共通イベント ハンドラーを使用します。次に、sender オブジェクトを Button にキャストすることで、どのボタンがクリックされたかを判断できます。次に、価格を決定するために使用できるTextおよびオブジェクト プロパティを含む、ボタンのすべてのプロパティにアクセスできます。Tag

private void button1_Click(object sender, EventArgs e)
{
    var b = (Button)sender;

    switch(b.Text)  //Do your 
    {
        case "Coca Cola":
            break;
        case "Pepsi":
            break;
        case "Diet Pepsi":
            break;
        case "Pepsi Max":
            break;
        default:
            break;
    }

}
于 2013-05-08T03:53:45.500 に答える
3

ボタンを新しくして、クリックイベントをメソッドにバインドします。いいね:</p>

Button b=new Button();
b.Click+=new EventHandler(b_Click);
于 2013-05-08T03:15:29.667 に答える
-1

私はマーク・ホールに同意します。それが行く方法です。構文を少しだけ改善することをお勧めします: use

switch ((sender As Button).Text)

コードを簡素化します。よろしく、AB

于 2013-05-08T04:09:23.040 に答える