2012-03-23 11 views
0

フォームに動的に入力されるラジオボタンがいくつかあり、動的に作成されたラジオボタンにクリックイベントが設定されています。ラジオボタンのクリックでプライマリキーを取得

//Radio button click: 
    void Form1_Click(object sender, EventArgs e) 
    { 
     RadioButton rb = sender as RadioButton; 
     string radioButtonValue = rb.Text; 

     if (radioButtonValue != String.Empty) 
     { 

     } 
    } 

デバッグ値を介して返されます。デバッグ(例)を介して、次のようにクリックで、私は、戻り値を取得し、次のように使用してコード「送信者{テキスト=を 『これは一つの』 +チェック= 『true』を答えています} 「ラジオボタンとしてのRadioButton RB =センダ;」 - 切り抜いラジオボタンテキストがIデータセットをループし、及びローカルデータセット内の呼び出しデータセットを介して設定されている(例えば)に応じて、ラジオボタンのテキストを設定:

for (int i = 0; i < _dataSetRadioButtons.Tables["tbl_QuestionnaireAnswer"].Rows.Count; i++) 
            { 
             radioButtons[i] = new RadioButton(); 
             radioButtons[i].AutoCheck = true; 
             radioButtons[i].Text = _dataSetRadioButtons.Tables["tbl_QuestionnaireAnswer"].Rows[i]["tbl_QuestionnaireAnswer_Description"].ToString(); 
             radioButtons[i].Location = new System.Drawing.Point(60, 20 + i * 20); 
             radioButtons[i].Click += new EventHandler(Form1_Click); 
             panel.Controls.Add(radioButtons[i]); 
            } 

これはラジオボタンのクリック(Form1_Click)イベントで知りたいのですが、選択したラジオボタンの主キーを返すことができます。私のデータベースに書き戻すためにそのデータセットのプライマリキーを使用したいので、sender {Text = "これは回答1" + "Checked =" True "}です。

ありがとうございます。 種類 geo

答えて

1

ほとんどのwinformsコントロールには、コントロールのカスタムユーザーデータを格納するために使用されるTagプロパティが含まれています。あなたはで詳細を読むことができます:だからhttp://msdn.microsoft.com/en-us/library/system.windows.forms.control.tag.aspx

、あなたのソリューションは、このような単純かつより簡潔でなければなりません:

for (int i = 0; i < _dataSetRadioButtons.Tables["tbl_QuestionnaireAnswer"].Rows.Count; i++) 
{ 
    radioButtons[i] = new RadioButton(); 
    radioButtons[i].AutoCheck = true; 
    radioButtons[i].Location = new System.Drawing.Point(60, 20 + i * 20); 
    radioButtons[i].Tag = _dataSetRadioButtons.Tables["tbl_QuestionnaireAnswer"].Rows[i]; 
    radioButtons[i].Click += new EventHandler(Form1_Click); 
    panel.Controls.Add(radioButtons[i]); 
} 

これは、ラジオボタンで関連のDataRowを含んでいます。良いことであるあなたが、すべてのデータを持っており、それが強く型付けされています

//Radio button click: 
void Form1_Click(object sender, EventArgs e) 
{ 
    RadioButton radioButton = sender as RadioButton; 
    if (radioButton == null) 
     return; 

    DataRow row = radioButton.Tag as DataRow; 
    if (row == null) 
     return; 

    /* Post any processing here. e.g. 
     MessageBox.Show(row["ID"].ToString()); 
    */ 
} 

この方法は、:次のことはそれから任意のデータが必要なことです。私はここで何かが欠けています - -

+0

こんにちはドミトリしかしそれらが動的に作成されているラジオボタンのテキストを移入しないタグのあなたがdatasetradiobuttonsのためにしたコード設定をお願い致し謝罪> geoNeo :) –

+0

おっと、私を待ちます私はそれを持っていますDimitriy - ありがとう:D –

+0

あなたは大歓迎です:) –

関連する問題