我一直在努力寻找一种方法来获取已检查单选按钮的text属性并保存在十进制变量中。
目前有三个组合框,所有组合框都有3个单选按钮。
我需要从每个框中选中的单选按钮中取出text属性,并将其中两个保存为十进制,其中一个保存为Int16。
decimal variablename =组框中当前所选单选按钮的文本属性 int16变量名称=组框中当前所选单选按钮的文本属性
有什么想法吗?
答案 0 :(得分:0)
// define a global variable
decimal result = 0;
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
result = decimal.Parse(radioButton1.Text);
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
result = decimal.Parse(radioButton2.Text);
}
private void radioButton3_CheckedChanged(object sender, EventArgs e)
{
result = decimal.Parse(radioButton3.Text);
}
确保您的radioButton文字为number
,但不是character
答案 1 :(得分:0)
如果要添加或删除单选按钮,使用单独的处理程序会变得相当笨重且难以维护。所有这些的一个处理程序和一个简单的foreach将处理程序分配给每个单选按钮将使代码更加简化。此外,您应该始终检查是否选中了radiobutton,因为取消检查也会触发事件:
在表单的加载事件处理程序中添加:
foreach(GroupBox gb in this.Controls.OfType<GroupBox>())
}
foreach(RadioButton rb in gb.Controls.OfType<RadioButton>())
{
rb.CheckedChanged += new System.EventHandler(radioButton_CheckedChanged);
}
}
全局变量:
decimal result1 = 0;
decimal result2 = 0;
Int16 result3 = 0;
CheckedChanged处理程序:
private void radioButton_CheckedChanged(object sender, EventArgs e)
{
RadioButton currentrb = (RadioButton)sender;
if(currentrb.Checked)
{
switch(currentrb.Parent.Name)
{
case "GroupBox1":
result1 = decimal.Parse(currentrb.Text);
break;
case "GroupBox2":
result2 = decimal.Parse(currentrb.Text);
break;
case "GroupBox3":
result3 = Int16.Parse(currentrb.Text);
break;
}
}
}
有了这个,唯一需要注意的是你添加或删除GroupBox