none
如何让checkbox控件只在单击复选框时才更改其checked属性? RRS feed

  • 问题

  • 一个checkbox控件的文本中包含一个combobox控件,我想指示用户当没有勾选这个checkbox控件时,这个combobox控件禁用,但是运行时,即使点击已经被禁用的combobox控件时,仍然相当于点击了这个checkbox控件的复选框(按照常规点击被禁用的控件程序是不应该有任何响应的!),有没有一种方法只在它的复选框里单击时才更改它的选中状态而在单击它的文本时无任何变化呢?谢谢!
    xrhigh
    2009年4月3日 5:13

答案

  • 你好!
         明白你的意思了啊!
         请问你的是WinForm程序吗?WinForm不能实现这样的效果啊!
    周雪峰
    2009年4月7日 3:11
    版主
  • 3个控件
    checkvox无text
    label 文本比如是"******           ******"
    combobox

    http://feiyun0112.cnblogs.com/
    2009年4月7日 4:19
    版主
  • 楼主,你好

    如果是指在Winform中,你可以用一个checkbox和一个combox和一个label控件组合成你想要的结果。
    首先设置combox的enable属性为false,当改变checkbox的选中状态时判断checkbox是否为checked,如果不是则combox的enable为false,否则为true。
     private void checkBox1_CheckedChanged(object sender, EventArgs e)
            {
                CheckBox cb=sender as CheckBox;
                if (cb.Checked)
                {
                    this.comboBox1.Enabled = true;
                }
                else
                    this.comboBox1.Enabled = false;
            }
    Microsoft Online Community Support
    2009年4月8日 2:58

全部回复

  • 你好!
         请问CheckBox控件的文本包含一个Combobox控件是什么意思啊?
    周雪峰
    2009年4月3日 8:38
    版主
  • 你是在WPF里面吧?
    2009年4月3日 15:09
  • 我的意思就是如果一个CheckBox控件的文本比如是"******           ******",在这个文本的空白处再放一个Combobox控件,并且让这个Combobox控件顶置,这个CheckBox控件在没有选中的情况下这个Combobox控件就禁用,可是在运行时点击这个被禁用的Combobox控件就相当于点击了这个CheckBox控件的文本,我想要的是只有在点击CheckBox控件的复选框时才更改其checked属性,该怎么做呀?
    xrhigh
    2009年4月7日 0:40
  • 你好!
         明白你的意思了啊!
         请问你的是WinForm程序吗?WinForm不能实现这样的效果啊!
    周雪峰
    2009年4月7日 3:11
    版主
  • 3个控件
    checkvox无text
    label 文本比如是"******           ******"
    combobox

    http://feiyun0112.cnblogs.com/
    2009年4月7日 4:19
    版主
  • 界面好奇怪。
    2009年4月7日 23:00
  • 界面好奇怪。

    最好自定义一个控件。
    2009年4月7日 23:00
  • 楼主,你好

    如果是指在Winform中,你可以用一个checkbox和一个combox和一个label控件组合成你想要的结果。
    首先设置combox的enable属性为false,当改变checkbox的选中状态时判断checkbox是否为checked,如果不是则combox的enable为false,否则为true。
     private void checkBox1_CheckedChanged(object sender, EventArgs e)
            {
                CheckBox cb=sender as CheckBox;
                if (cb.Checked)
                {
                    this.comboBox1.Enabled = true;
                }
                else
                    this.comboBox1.Enabled = false;
            }
    Microsoft Online Community Support
    2009年4月8日 2:58