2016-11-14 3 views
0

私はリストボックスに項目を追加する次のbutton_clickイベントを持っています。リストボックスに追加する必要のあるテキストは約30個のボタンがあるからです。どのように関数やイベントの形で一般化するので、ユーザーが1から30までの任意の数字ボタンをクリックすると、項目ボタン(i).textをリストボックスに追加する必要があります。次の例では です。button1_click add button1.text。私は(ボタンボタンを追加する(I)_CLICK(私は)あなたはおそらく、あなたの「自分」ボタンクラスを記述する必要があります。ここで、i = 1
30のおかげ一般化ボタン(i)_clickボタン(i)を取得する.text

private void button1_Click(object sender, EventArgs e) 
    { 
     listBox1.Items.Insert(0, " "); 

     if ((checkBox_pickup.CheckState != 0) && (checkBox_family.CheckState != 0)) 
     { 
      listBox1.Items.Insert(1, listBox1.Items.Count); 
      listBox1.Items.Insert(2, "PICKUP"); 
      listBox1.Items.Insert(3, textBox2.Text); 
      listBox1.Items.Insert(4, textBox1.Text); 
      listBox1.Items.Insert(5, "Family"); 


      listBox1.Items.Insert(5, button1.Text); 

      listBox1.Items.Insert(6, DateTime.Now.ToString()); 
      listBox1.Items.Insert(listBox1.Items.Count, textBox4.Text); 
+1

送信者をButtonオブジェクトにキャストすると、ボタンのNameプロパティとTextプロパティが自由に使えます: 'Button b = sender as Button; – LarsTech

答えて

0

ボックスの一覧を表示するの.textたいのはクラスを意味し、 Buttonから継承します)。

このクラスでは、初期化時にIDを設定する必要があります。

ハードに聞こえるかもしれませんが、実際はとても簡単です。

https://msdn.microsoft.com/en-us/library/7h62478z(v=vs.110).aspx

0

あなたは次にあなたがそのコードに、例えばという名前のイベントハンドラを追加することができ、次の

  Button[] btns=new Button[30]; 
      for (int ii = 0; ii <30; ii++) 
      { 
       btns[ii] = new Button(); 
      //and then you adjust their properties.... 
      // btns[ii].FlatStyle =... 
      // btns[ii].Width = ... 
      // btns[ii].Top = ...... 
      //.......etc 
      // 
       btns[ii].Tag=ii; 
       btns[ii].Click += new EventHandler(presd_btn); 
       } 

に次のようなコードを使用して30個のボタンを作成するとpresd_btn を入力し、ボタンのタグにインデックスを割り当てます。 ii(0,1 ,,, 29をカウントする)またはii + 1(1,2、... 30を数える)。 次に、pressd_btn新しいClick EventHandlerの タグ番号を読み取って、押されたボタンにアクセスして認識することができます。 EventHandlerは、以下の

 private void presd_btn(object sender, EventArgs e) 
     { 
     Button mybutn = sender as Button; 
     int btnum=mybutn.Tag; 
     listBox1.Items.Insert(0, " "); 

     if ((checkBox_pickup.CheckState != 0) && (checkBox_family.CheckState != 0)) 
     { 
     listBox1.Items.Insert(1, listBox1.Items.Count); 
     listBox1.Items.Insert(2, "PICKUP"); 
     listBox1.Items.Insert(3, textBox2.Text); 
     listBox1.Items.Insert(4, textBox1.Text); 
     listBox1.Items.Insert(5, "Family"); 

      //and here you assign the pressed button's text 
     listBox1.Items.Insert(5, mybtn.Text); 

     listBox1.Items.Insert(6, DateTime.Now.ToString()); 
     listBox1.Items.Insert(listBox1.Items.Count, textBox4.Text); 
     //...... 
     } 

でのようにすることができ

は、これらの助けを願っています。

関連する問題