2013-10-13 2 views
1

안녕하십니까., 투표 시스템에 투표하는 데 문제가 있습니다. 라디오 버튼을 클릭 할 때마다 그 후보자의 신분증을 받아 다른 양식으로 넘겨서 투표 수를 만들어야합니다. 이벤트 처리기를 만드는 데 문제가 있습니다. 모든 컨트롤이 동적입니다.C# winforms에서 코드를 사용하여 데이터베이스에서 ID를 가져 오는 방법은 무엇입니까?

지금까지이 코드가 있습니다

public partial class Form1 : Form { 

    public Form1() 
    { 
     InitializeComponent(); 
     Load += Form1_Load; 
    } 

    FlowLayoutPanel panel = new FlowLayoutPanel(); 

    private void InitPanel() 
    { 
     panel.Size = new Size(600, 150); 
     panel.Location = new Point(50, 50); 
     panel.FlowDirection = FlowDirection.LeftToRight; 
     panel.AutoScroll = true; 
     panel.WrapContents = false; 
     Controls.Add(panel); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     InitPanel(); 
     panel.SuspendLayout(); 
     string cmdText = "SELECT (FirstName + ' ' + MiddleName + ' ' + LastName) as FullName, " + 
      "imgPath as ImagePath FROM TableVote WHERE Position='President'"; 
     using(SqlCommand com = new SqlCommand(cmdText,sc)) 
     { 
      if(sc.State != ConnectionState.Open) sc.Open(); 
      SqlDataReader reader = com.ExecuteReader();  
      while(reader.Read()){ 
      AddRadioButton(reader.GetString(0), reader.GetString(1)); 
     } 
     reader.Close(); 
     sc.Close(); 
     panel.ResumeLayout(true); 
     } 
    } 

    private void AddRadioButton(string fullName, string imagePath) 
    { 
     RadioButton radio = new RadioButton {Text = fullName, Parent = panel}; 
     radio.AutoSize = true; 
     radio.Image = new Bitmap(Image.FromFile(imagePath),75,75); 
     radio.TextImageRelation = TextImageRelation.ImageAboveText;  
     radio.CheckAlign = ContentAlignment.BottomCenter; 
    } 
    } 

감사합니다 :) 당신이

RadioButton radio = new RadioButton {Text = fullName, Parent = panel}; 
radio.CheckedChanged += radio_CheckedChanged; 
radio.Tag=1; //you can set here your own object. 

같은 모든 동적 라디오 버튼에 대한 일반적인 checkchange 이벤트를 정의 할 수 있습니다

+0

어디에 문제가 있습니까? –

+0

문제는 어떻게 동적 라디오 버튼에서 checkedchanged 이벤트를 수행합니까? 라디오 버튼을 클릭 할 때마다 후보자 ID를 얻는 방법은 무엇입니까? –

+0

@LyndonBrozTonelete이 문제에 관해 더 많은 질문을해야 할 것입니다. 대신 클래스를 다루는 기본적인 방법부터 데이터베이스 다루기에 이르기까지 몇 가지 간단한 문제로 프로그래밍을 시도해야합니다. 당신의 문제는 지금도 간단합니다. 후보자의 ID에 대해 말했습니까? 그렇다면 '테이블'에서 어디로 가져 왔습니까? 다른 정보와 함께 ID를 가져와야합니다. –

답변

1

등의 이벤트를 처리를 이

void radio_CheckedChanged(object sender, EventArgs e) 
    { 
     var radio=(RadioButton)sender; 
     int id=(int)radio.Tag; //cast your object here 
    } 

희망이 도움이

관련 문제