0

Windows アプリケーションで実行時にコントロールのグループを作成するためのコードを作成しました。ボタンの個々のクリックイベントを取得しようとしていますが、これはすべてのボタンで機能しています。

私が試しているコードは

 public partial class Employee_PayHeads_add : Form
{


    private TextBox newTxtBox = new TextBox();
    private Button newBtnAdd = new Button();
    private ComboBox newCombohead = new ComboBox();

    private int txtBoxStartPosition = 150;
    private int btnAddStartPosition = 240;
    private int comboheadStartPosition = 10;


    private int txtBoxStartPositionV = 25;
    private int btnAddStartPositionV = 25;
    private int comboheadStartPositionV = 25;

    public Employee_PayHeads_add()
    {
        InitializeComponent();
    }



    private void button1_Click(object sender, EventArgs e)
    {

        TextBox newTxtBox = new TextBox();
        Button newBtnAdd = new Button();
        ComboBox newCombohead = new ComboBox();

        newBtnAdd.BackColor = Color.Gray;
        newBtnAdd.Text = "Remove";
        newBtnAdd.Location = new System.Drawing.Point(btnAddStartPosition, txtBoxStartPositionV);
        newBtnAdd.Size = new System.Drawing.Size(70, 25);

        newTxtBox.Text = "";
        newTxtBox.Location = new System.Drawing.Point(txtBoxStartPosition, btnAddStartPositionV);
        newTxtBox.Size = new System.Drawing.Size(70, 40);

        newCombohead.Location = new System.Drawing.Point(comboheadStartPosition, comboheadStartPositionV);

        panel1.Controls.Add(newBtnAdd);
        panel1.Controls.Add(newTxtBox);
        panel1.Controls.Add(newCombohead);


        txtBoxStartPositionV += 30;
        btnAddStartPositionV += 30;
        comboheadStartPositionV += 30;

        newBtnAdd.Click += new EventHandler(ButtonClick);


         }

    void ButtonClick(object sender, EventArgs e)
    {

        label1.Text = "Hello Gagan";
    }

個々のボタンのクリック イベントを取得したいのですが、Label1 のボタンを使用して、それぞれのテキスト ボックスにテキストを表示する必要があるとします。

前もって感謝します。

4

1 に答える 1

0

あなたが何をしたいのかわからない。いずれにせよ、上記のコードを見ると、かなりの数のコントロールが直列に並んでいる可能性があります (Button、Textbox、ComboBox の順) すべてが button1_Click() によって Panel に追加されます。その場合は、次の順序に従ってください。

  1. ハンドラーから、パネル内のボタンのインデックスがわかります。
  2. 次のインデックスは、TextBox コントロールを参照します。
  3. その TextBox を取得し、Text を設定します。

    void bu_Click(object sender, EventArgs e)
    {
        Type type = panel1.Controls[(panel1.Controls.IndexOf(sender as Button)) + 1].GetType();
        if(type == typeof(TextBox))
        {
            TextBox tb = (TextBox) panel1.Controls[
                            (panel1.Controls.IndexOf(sender as Button)) + 1];
            tb.Text = "Hello Gagan";
        }
    }
    
于 2013-05-24T12:17:14.600 に答える