日期:2014-05-17  浏览次数:20911 次

checkbox如何限定只是通过click事件才让它的ischecked为true(界面显示打钩)?其他情况(比如直接设置ischecked都不显示打钩
checkbox如何限定只是通过click事件才让它的ischecked为true(就是checkbox界面显示打钩)?如果不是click事件比如我在其他方法直接将cb.ischecked=ture,我想让界面上的checkbox显示不打钩(就是让cb.ischecked重新变为false)?

------解决方案--------------------
试着加一个全局的JS var flag=false;变量

当点击触发时,设置flag为true

$("#checkbox").click(function(){
flag=true;
//设置选中
flag=false;
});

其他地方
先判断 flag是否为真,然后再设置选中
------解决方案--------------------
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.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        private bool clicksignal = false;
        private bool codesignal = false;

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            checkBox1.Checked = true;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            checkBox1.Checked = false;
        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (!clicksignal && !codesignal) 
            {
                codesignal = true;
                checkBox1.Checked = !checkBox1.Checked;
                codesignal = false;
            }
        }

        private void checkBox1_Click(object sender, EventArgs e)
        {
            clicksignal = true;
            checkBox1.Checked = !checkBox1.Checked;
            clicksignal = false;
        }
    }
}