日期:2014-05-18  浏览次数:20806 次

checkbox能否像radiobutton一样,一组只能选一个?
如题。

------解决方案--------------------
好像不能,只能自己判断
------解决方案--------------------
那样的话直接用radiobutton不就更好实现了吗?
不懂~~~~~~
------解决方案--------------------
探讨
那样的话直接用radiobutton不就更好实现了吗?
不懂~~~~~~

------解决方案--------------------
闷,怎么会有这种想法呢?
这就好比,用筷子喝汤,用勺子吃面。
------解决方案--------------------
MS无语了。。。
------解决方案--------------------
这个得自己实现吧
------解决方案--------------------
 
可以啊 比如:checkbox1 与checkbox2


双击checkbox1 在里面添加代码: 
 
if(this。checkbox1.checked)
{
this.checkbox2.check2=false;

}
------解决方案--------------------
呵…… 楼上正解……
楼主可以定义List<CheckBox>用于存储同一组下的CheckBox,当其中之一的checked为true时,foreach遍历List<CheckBox>,将其他CheckBox的checked属性设置为false即可。
------解决方案--------------------
可以是可以,不过得自己用javascript来控制的

checkbox是多选框,如果要做到单选,为什么不用radiobutton的呢?
------解决方案--------------------
lz误解,checkbox单选完全不用遍历,
记录每次选择,然后选择时,判断上次选择的是否为空,不为空就将其不选中
------解决方案--------------------
探讨
lz误解,checkbox单选完全不用遍历,
记录每次选择,然后选择时,判断上次选择的是否为空,不为空就将其不选中

------解决方案--------------------
仿做
加个GroupBox(或其它容器) 把几个CheckBox 放到容器中。checkBox_Checked事件指定下面方法.
C# code

private void checkBox_CheckedChanged(object sender, EventArgs e)
{
    if ((sender as CheckBox).Checked==true)
    {
        foreach (CheckBox chk in (sender as CheckBox).Parent.Controls)
        {
            if (chk != sender) chk.Checked = false;
        }
    }
}

------解决方案--------------------
楼主不喜欢radiobutton的形状吧
探讨
那样的话直接用radiobutton不就更好实现了吗?
不懂~~~~~~

------解决方案--------------------
那何必用checkbox
------解决方案--------------------
用个下拉框吧~~~
------解决方案--------------------
只能等LZ来说明为什么要这么做了
------解决方案--------------------
不能,只能通过代码控制。
------解决方案--------------------
探讨
那样的话直接用radiobutton不就更好实现了吗?
不懂~~~~~~

------解决方案--------------------
C# code
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.VisualStyles;

namespace WindowsFormsApplication70
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            RadioButtonEx RB1 = new RadioButtonEx();
            RB1.Parent = this;
            RB1.Text = "1111111";

            RadioButtonEx RB2 = new RadioButtonEx();
            RB2.Parent = this;
            RB2.Location = new Point(0, 50);
            RB2.Text = "2222222";
        }

        class RadioButtonEx : RadioButton
        {
            protected override void OnPaint(PaintEventArgs pevent)
            {
                pevent.Graphics.FillRectangle(new SolidBrush(this.BackColor), pevent.ClipRectangle);
                CheckBoxRenderer.DrawCheckBox(pevent.Graphics, new Point(0, 0), this.Checked ? CheckBoxState.CheckedNormal : CheckBoxState.UncheckedNormal);
                pevent.Graphics.DrawString(this.Text, this.Font, new SolidBrush(this.ForeColor), new PointF(20, 0));