c# – 区分用户更改Checkbox.Checked值,或以编程方式更改

c# – 区分用户更改Checkbox.Checked值,或以编程方式更改,第1张

概述我看到复选框有一个CheckedChanged事件.是否可以判断是否以编程方式更改,或者由用户实际检查复选框? 我有一个大型网格,用户可以在其中输入过滤器,或者使用一些提供常见过滤参数的“快速过滤器”复选框.然后说他们去通过文本框修改过滤器,我正在检查是否应该以编程方式(un)检查CheckBox控件,以便它反映在文本框中的过滤器. private void genericCheckbox_Che 我看到复选框有一个CheckedChanged事件.是否可以判断是否以编程方式更改,或者由用户实际检查复选框?

我有一个大型网格,用户可以在其中输入过滤器,或者使用一些提供常见过滤参数的“快速过滤器”复选框.然后说他们去通过文本框修改过滤器,我正在检查是否应该以编程方式(un)检查CheckBox控件,以便它反映在文本框中的过滤器.

private voID genericCheckBox_CheckedChanged(object sender,EventArgs e)    {        Updatefilter();    }    private voID Updatefilter()    {        if (gdcSVNdefaultview.RowCount == 0)            return;        gdcSVNdefaultview.ActiveFilterString = BuildtableFilter();        gdcSVNdefaultview.BestFitColumns();    }    private voID gdcSVNdefaultview_ColumnFilterChanged(object sender,EventArgs e)    {        lblTotalfileCount.Text = gdcSVNdefaultview.RowCount.ToString();        if (gdcSVNdefaultview.ActiveFilterString.Contains("normal"))            chenormalfiles.Checked = true;        else            chenormalfiles.Checked = false;        if (gdcSVNdefaultview.ActiveFilterString.Contains("bin") ||             gdcSVNdefaultview.ActiveFilterString.Contains("obj"))            cheBinObjFolders.Checked = true;        else            cheBinObjFolders.Checked = false;    }

通过一些非常轻的测试,这似乎就像我想要的那样工作.但是担心CheckedChanged事件发生时调用Updatefilter方法会导致ColumnFilterChanged事件触发,这可能会导致CheckedChange再次发生,因为ColumnFilterChanged *** 作了复选框.

解决方法 我可能会分离,然后重新连接处理程序,例如
private voID gdcSVNdefaultview_ColumnFilterChanged(object sender,EventArgs e){    chenormalfiles.CheckedChanged -= genericCheckBox_CheckedChanged;    cheBinObjFolders.CheckedChanged -= genericCheckBox_CheckedChanged;    // do stuff...    chenormalfiles.CheckedChanged += genericCheckBox_CheckedChanged;    cheBinObjFolders.CheckedChanged += genericCheckBox_CheckedChanged;}
总结

以上是内存溢出为你收集整理的c# – 区分用户更改Checkbox.Checked值,或以编程方式更改全部内容,希望文章能够帮你解决c# – 区分用户更改Checkbox.Checked值,或以编程方式更改所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1244068.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存