使用文本框数据检查单选按钮
本文关键字:检查 单选按钮 数据 文本 | 更新日期: 2023-09-27 18:24:55
我有一个从数据库中获取性别值的文本框。根据文本更改事件,单选按钮会相应地做出响应。
private void txtInvisibleGender_TextChanged(object sender, EventArgs e)
{
if (txtInvisibleGender.Text == "Female")
rbFemale.Checked = true;
else
rbMale.Checked = true;
}
问题是,当文本框中的数据为"女性"时,为什么要选中"男性"单选按钮?它不会根据文本框中的数据进行检查。我该如何做到这一点?
您应该使用字符串。比较而不是==。
这意味着你的文本框没有这个值,至少不在同一个大小写中。试试这个
private void txtInvisibleGender_TextChanged(object sender, EventArgs e)
{
if(string.Compare(txtInvisibleGender.Text.Trim(), "Female", StringComparison.OrdinalIgnoreCase) == 0)
rbFemale.Checked = true;
else
rbMale.Checked = true;
}
您的false branch
总是超过,因为您的条件从来都不是true
。
if (txtInvisibleGender.Text == "Female")
rbFemale.Checked = true;
else
rbMale.Checked = true; // we are reaching here.
我建议改成
if (txtInvisibleGender.Text.Trim().ToLower().Contains("female"))
rbFemale.Checked = true;
else
rbMale.Checked = true;
值得注意的是,在txtInvisibleGender
不包含"female"
的所有情况下,if-else
都将检查雄性。因此,键入"foobar"
将检查男性。
我会把它改成:
// "female" contains "male" so Contains() cannot be used!
if (txtInvisibleGender.Text.Trim().ToLower().Equals("female"))
rbFemale.Checked = true;
if (txtInvisibleGender.Text.Trim().ToLower().Equals("male"))
rbMale.Checked = true;
那么如果它是除CCD_ 7或CCD_。