C# 解决双击TreeView表里checkbox本身Bug问题

上传者: tokyo2008 | 上传时间: 2019-12-21 18:55:16 | 文件大小: 65KB | 文件类型: zip
一个WinForm的TreeView,某node的CheckBox初始状态为false,当双击这个node的checkbox时,会出现很奇怪的情况: 第一次双击checkbox,checkbox显示的状态会切换两次状态,unchecked-> checked-> unchecked,而AfterCheck事件仅触发一次,在AfterCheck事件中获取到的checkbox状态为checked。在这里checkbox状态已经和显示状态不一致了 以后每次双击,checkbox显示的状态会出现一次切换,AfterCheck也会触发一次,并且checkbox显示的状态和值的状态仍然保持相反。 除上面这个问题外,还有一点,当双击treeview 的checkbox后,如果再去单击或双击该界面中除这个treeview外的任何部分,系统会忽略第一次点击事件。举例来说,一个窗口中,有一个treeview,还有一个ok按钮,当我双击这个treeview的一个checkbox后,再去点那个ok按钮,第一次点击是没有任何作用的,第二次以及以后的点击才会有效,包括点击最大化,最小化,以及关闭这种系统按钮。 为了解决以上问题,我重写了TreeView控件,在不影响其它地方的前提下,能很好的解决以上问题。我的环境:.Net framework4.0 + VS2005 + Win7 编译通过,并付执行程序。-

文件下载

资源详情

[{"title":"( 30 个子文件 65KB ) C# 解决双击TreeView表里checkbox本身Bug问题","children":[{"title":"TreeViewEx","children":[{"title":"testTreeView.sln <span style='color:#111;'> 929B </span>","children":null,"spread":false},{"title":"testTreeView.suo <span style='color:#111;'> 26.50KB </span>","children":null,"spread":false},{"title":"testTreeView","children":[{"title":"TreeViewEx.cs <span style='color:#111;'> 1.01KB </span>","children":null,"spread":false},{"title":"Form1.Designer.cs <span style='color:#111;'> 11.86KB </span>","children":null,"spread":false},{"title":"Program.cs <span style='color:#111;'> 512B </span>","children":null,"spread":false},{"title":"obj","children":[{"title":"Release","children":[{"title":"testTreeView.Form1.resources <span style='color:#111;'> 180B </span>","children":null,"spread":false},{"title":"testTreeView.csproj.GenerateResource.Cache <span style='color:#111;'> 842B </span>","children":null,"spread":false},{"title":"TempPE","children":null,"spread":false},{"title":"testTreeView.Properties.Resources.resources <span style='color:#111;'> 180B </span>","children":null,"spread":false},{"title":"testTreeView.pdb <span style='color:#111;'> 33.50KB </span>","children":null,"spread":false},{"title":"testTreeView.exe <span style='color:#111;'> 24.00KB </span>","children":null,"spread":false}],"spread":true},{"title":"Debug","children":[{"title":"testTreeView.Form1.resources <span style='color:#111;'> 180B </span>","children":null,"spread":false},{"title":"testTreeView.csproj.GenerateResource.Cache <span style='color:#111;'> 842B </span>","children":null,"spread":false},{"title":"TempPE","children":null,"spread":false},{"title":"testTreeView.Properties.Resources.resources <span style='color:#111;'> 180B </span>","children":null,"spread":false},{"title":"testTreeView.pdb <span style='color:#111;'> 25.50KB </span>","children":null,"spread":false},{"title":"testTreeView.exe <span style='color:#111;'> 24.00KB </span>","children":null,"spread":false}],"spread":true},{"title":"testTreeView.csproj.FileListAbsolute.txt <span style='color:#111;'> 1.98KB </span>","children":null,"spread":false}],"spread":true},{"title":"bin","children":[{"title":"Release","children":[{"title":"testTreeView.vshost.exe <span style='color:#111;'> 5.50KB </span>","children":null,"spread":false},{"title":"testTreeView.pdb <span style='color:#111;'> 33.50KB </span>","children":null,"spread":false},{"title":"testTreeView.exe <span style='color:#111;'> 24.00KB </span>","children":null,"spread":false}],"spread":true},{"title":"Debug","children":[{"title":"testTreeView.vshost.exe <span style='color:#111;'> 5.50KB </span>","children":null,"spread":false},{"title":"testTreeView.pdb <span style='color:#111;'> 25.50KB </span>","children":null,"spread":false},{"title":"testTreeView.exe <span style='color:#111;'> 24.00KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"Form1.cs <span style='color:#111;'> 1.11KB </span>","children":null,"spread":false},{"title":"Form1.resx <span style='color:#111;'> 5.68KB </span>","children":null,"spread":false},{"title":"testTreeView.csproj <span style='color:#111;'> 3.24KB </span>","children":null,"spread":false},{"title":"Properties","children":[{"title":"AssemblyInfo.cs <span style='color:#111;'> 1.42KB </span>","children":null,"spread":false},{"title":"Settings.Designer.cs <span style='color:#111;'> 1.07KB </span>","children":null,"spread":false},{"title":"Resources.resx <span style='color:#111;'> 5.48KB </span>","children":null,"spread":false},{"title":"Settings.settings <span style='color:#111;'> 249B </span>","children":null,"spread":false},{"title":"Resources.Designer.cs <span style='color:#111;'> 3.22KB </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}]

评论信息

  • aostas :
    快速点鼠标还是会有延迟 我做了个改进 在m.Result = IntPtr.Zero;后面加上tvhti.Node.Checked = !tvhti.Node.Checked; 非常流畅!
    2020-08-31
  • 心灵语 :
    可以,感谢分享
    2020-04-20
  • 皮特胖胖 :
    效果不错,棒棒哒!
    2018-10-31
  • qgxspace :
    谢谢分享!
    2018-10-08
  • weixin_38281057 :
    TreeViewEx.cs定义的非常好!只要把TreeViewEx.cs添加进自己的应用名字空间的某一类文件中(当然是包含了要使用它的那个窗体类的类文件),再在这个窗体的Designer.cs中将原先
    2018-06-10

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明