
我有一个大型网格,用户可以在其中输入过滤器,或者使用一些提供常见过滤参数的“快速过滤器”复选框.然后说他们去通过文本框修改过滤器,我正在检查是否应该以编程方式(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值,或以编程方式更改所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)