一个checkbox的问题,请大家帮忙

jjj5536003 2010-09-27 03:41:20
有五个checkbox控件,放在一个groupBox1里。怎么控制必须只能选择四个checkbox,不能多选也不能少选?下面是我的代码。请帮我看看
private void groupBox1_Enter(object sender, EventArgs e)
{
int k=0;
for (int i = 0; i <= 5;i++ )
{
if ( )
{
k++;
}
}
if (k < 4 || k > 4)
{
MessageBox.Show("您的课程选择有误!");
}



}
我的该怎么改啊?
请大家给我详细步骤
...全文
275 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
jointan 2010-09-28
  • 打赏
  • 举报
回复
需求有错误,或用的地方不对,应该在提交时判断,即确认用户已经输完时判断.
不应该在groupBox1_Enter中判断,yellomandog提供的方法应该没啥问题
jjj5536003 2010-09-28
  • 打赏
  • 举报
回复
yellomandog
你的不行,不管我选中几个,都是提示错误
allen3010 2010-09-28
  • 打赏
  • 举报
回复
呵呵,人都很热心
lrh_079 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jjj5536003 的回复:]
就是我有五个checkbox,要求必须选择其中四个,少选或者多选都会有错误的消息框弹出,如果正确,接着判断,有三个radiobutton,必须选一个,如果没选,弹出错误消息框。如果都正确的选择,提示正确。就行了。三楼你打算怎么改啊?求代码啊,大哥们
[/Quote]

对于选中CheckBox个数,可采用3楼changling_wang的方式进行判断。这个判断应该在提交的时候进行,这样更容易处理,而不是在groupBox1_Enter或则其它什么事件中进行。
YellowManDog 2010-09-28
  • 打赏
  • 举报
回复
//计数器
int count = 0;

foreach (Control ctrl in groupBox1.Controls)
{
if (ctrl is CheckBox)
{
CheckBox cbx = ctrl as CheckBox;
if (cbx.Checked)
{
count++;
}
}
}
if (count!=4)
{
MessageBox.Show("正确答案有4个!");
}else
{
MessageBox.Show("正确操作!");
}
忘了,你是放到groupBox1上的了
  • 打赏
  • 举报
回复
放到提交事件里面可以的
jjj5536003 2010-09-28
  • 打赏
  • 举报
回复
可是我需要在点击提交这个button时候发生啊,yello的卸载group里面不适合我啊
jjj5536003 2010-09-28
  • 打赏
  • 举报
回复
谢谢大家,谢谢
zuisha8 2010-09-27
  • 打赏
  • 举报
回复
3层的解释有道理……
完美算法 2010-09-27
  • 打赏
  • 举报
回复
private int i,j,k,l,m=0;
private void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
if(checkBox1.Checked)
{
i=1;
}
else
{
i=0;
}
}

private void CheckBox2_CheckedChanged(object sender, EventArgs e)
{
if(checkBox2.Checked)
{
j=1;
}
else
{
j=0;
}
}

private void CheckBox3_CheckedChanged(object sender, EventArgs e)
{
if(checkBox3.Checked)
{
k=1;
}
else
{
k=0;
}
}

private void CheckBox4_CheckedChanged(object sender, EventArgs e)
{
if(checkBox4.Checked)
{
l=1;
}
else
{
l=0;
}
}


private void CheckBox5_CheckedChanged(object sender, EventArgs e)
{
if(checkBox5.Checked)
{
m=1;
}
else
{
m=0;
}
}
private void groupBox1_Enter(object sender, EventArgs e)
{
int n=i+j+k+l+m;
if (n!=4)
{
MessageBox.Show("您的课程选择有误!");
}
}


wuyq11 2010-09-27
  • 打赏
  • 举报
回复
int i=0;
foreach(Control c in groupBox1.Controls)
{
CheckBox chk=c as CheckBox;
if(c.Checked)
i++;
}
if(i>4){}
steven_welcome 2010-09-27
  • 打赏
  • 举报
回复
找到GroupBox中的所有控件,判断它 是不是CheckBox控件,是的话再判断是否已选择4个 是的话则正确,否则输出错误提示
YellowManDog 2010-09-27
  • 打赏
  • 举报
回复
好了,你可以结贴了,你试试我的行不
YellowManDog 2010-09-27
  • 打赏
  • 举报
回复
//计数器
int count = 0;

foreach (Control ctrl in this.Controls)
{
if (ctrl is CheckBox)
{
CheckBox cbx = ctrl as CheckBox;
if (cbx.Checked)
{
count++;
}
}
}
if (count!=4)
{
MessageBox.Show("正确答案有4个!");
}else
{
MessageBox.Show("正确操作!");
}
hyd85716 2010-09-27
  • 打赏
  • 举报
回复
多余 循环次数控制在5
具体的问题复杂化
hongjiaoli 2010-09-27
  • 打赏
  • 举报
回复
private void groupBox1_Enter(object sender, EventArgs e)
{
int k=0;
for (int i = 0; i <= 5;i++ )
{
if ( CheckBox.Checked )
{
k++;
}
}
if (k != 4)
{
MessageBox.Show("您的课程选择有误!");
}
}
jjj5536003 2010-09-27
  • 打赏
  • 举报
回复
是vs错误提示这样提示的,不是我的错啊,我不懂啊,哪里出问题了 啊
dotnetwenlong 2010-09-27
  • 打赏
  • 举报
回复
这个用ajax来做是最方便的了 代码如下
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="scripts/jquery-1.4.1.js"></script>
</head>

<body>
<input type="checkbox" name="newsletter" checked="checked" value="test1" />test1
<input type="checkbox" name="newsletter" value="test2" />test2
<input type="checkbox" name="newsletter" value="test3" />test3
<input type="checkbox" name="newsletter" checked="checked" value="test4" />test4
<input type="checkbox" name="newsletter" value="test5" />test5
<input id="txt" type="text" />
<input id="btn" type="button" value="提交" onclick="demo()"/>
<script type="text/javascript">
$("#btn").click(function (){
var a=$("input:checked").length
if(a!=4)
{
alert("必须选择四个");
}
else
{
alert("选择对了");
}
})
</script>
</body>
</html>
hongjiaoli 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jjj5536003 的回复:]
错误提示: “System.Windows.Forms.Control.Controls”是“属性”,但此处被当做“方法”来使用


怎么解决啊?
[/Quote]
哥们,你真搞笑,Controls是属性,你还给他赋参数?
jjj5536003 2010-09-27
  • 打赏
  • 举报
回复
错误提示: “System.Windows.Forms.Control.Controls”是“属性”,但此处被当做“方法”来使用


怎么解决啊?
加载更多回复(7)

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧