본문 바로가기

Development/.Net

동적 컨트롤 생성

반응형

아래의 예제는 radiobutton을 동적으로 생성하고

이벤트를 주고 이벤트를 호출한 radiobutton에 text값을 가져온다.

   

/// <summary>

/// 동적으로 controls Add

/// </summary>

private void SetAddControl()

{

   

panel1.BorderStyle = BorderStyle.FixedSingle;

this.Controls.Add(panel1);

   

//만들 컨트롤 수량을 가져옴

DataTable dt = GetControlData();

   

//RadioButton을 만든다.

MakeRadioButton(dt);

}

   

/// <summary>

/// Radio Button을 동적으로 생성한다.

/// </summary>

/// <param name="dt"></param>

private void MakeRadioButton(DataTable dt)

{

RadioButton[] radioButton = new RadioButton[dt.Rows.Count];

   

for (int i = 0; i < dt.Rows.Count; i++)

{

radioButton[i] = new RadioButton();

radioButton[i].Text = dt.Rows[i]["CODE_IDESC"].ToString();

radioButton[i].Width = 30;

radioButton[i].Left = (i * 50);

radioButton[i].CheckAlign = ContentAlignment.MiddleLeft;

radioButton[i].AutoSize = true;

radioButton[i].TabStop = true;

radioButton[i].Name = dt.Rows[i]["code_group"].ToString() + "_" + i.ToString();

radioButton[i].CheckedChanged += new EventHandler(RadioButton_CheckedChanged);

   

panel1.Controls.Add(radioButton[i]);

}

}

   

void RadioButton_CheckedChanged(object sender, EventArgs e)

{

RadioButton radioButtonSender = (RadioButton)sender;

   

if (radioButtonSender.Checked)

{

selectedRadVal = radioButtonSender.Text;

MessageBox.Show(selectedRadVal);

}

}

 

 

by. Blissful.joon

반응형