资源简介
一个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 编译通过,并付执行程序。-
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace testTreeView
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void treeView1_AfterCheck(object sender TreeViewEventArgs e)
{
if (e.Action != TreeViewAction.Unknown && (e.Node.Nodes.Count > 0 || e.Node.Name == “root“))
{
foreach (TreeNode childNode in e.Node.Nodes)
{
childNode.Checked = e.Node.Checked;
}
this.label1.Text = e.Node.Checked.ToString();
}
this.label2.Text = e.Node.Checked.ToString();
if (e.Node.Name == “ConvToLayout“)
{
this.label17.Text = e.Node.Checked.ToString();
}
if (e.Node.Name == “ConvToPrinter“)
{
this.label18.Text = e.Node.Checked.ToString();
}
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-08-09 13:23 TreeViewEx\
目录 0 2012-08-09 13:27 TreeViewEx\testTreeView\
文件 929 2012-08-08 13:37 TreeViewEx\testTreeView.sln
文件 27136 2012-08-09 13:27 TreeViewEx\testTreeView.suo
目录 0 2012-08-09 13:23 TreeViewEx\testTreeView\bin\
目录 0 2012-08-09 13:23 TreeViewEx\testTreeView\bin\Debug\
文件 24576 2012-08-08 13:24 TreeViewEx\testTreeView\bin\Debug\testTreeView.exe
文件 26112 2012-08-08 13:24 TreeViewEx\testTreeView\bin\Debug\testTreeView.pdb
文件 5632 2012-08-08 12:10 TreeViewEx\testTreeView\bin\Debug\testTreeView.vshost.exe
目录 0 2012-08-09 13:23 TreeViewEx\testTreeView\bin\Release\
文件 24576 2012-08-09 13:27 TreeViewEx\testTreeView\bin\Release\testTreeView.exe
文件 34304 2012-08-09 13:27 TreeViewEx\testTreeView\bin\Release\testTreeView.pdb
文件 5632 2012-08-09 13:26 TreeViewEx\testTreeView\bin\Release\testTreeView.vshost.exe
文件 1140 2012-08-09 13:27 TreeViewEx\testTreeView\Form1.cs
文件 12140 2012-08-09 13:26 TreeViewEx\testTreeView\Form1.Designer.cs
文件 5814 2012-08-09 13:26 TreeViewEx\testTreeView\Form1.resx
目录 0 2012-08-09 13:23 TreeViewEx\testTreeView\obj\
目录 0 2012-08-09 13:23 TreeViewEx\testTreeView\obj\Debug\
目录 0 2012-08-08 12:10 TreeViewEx\testTreeView\obj\Debug\TempPE\
文件 842 2012-08-08 13:24 TreeViewEx\testTreeView\obj\Debug\testTreeView.csproj.GenerateResource.Cache
文件 24576 2012-08-08 13:24 TreeViewEx\testTreeView\obj\Debug\testTreeView.exe
文件 180 2012-08-08 13:24 TreeViewEx\testTreeView\obj\Debug\testTreeView.Form1.resources
文件 26112 2012-08-08 13:24 TreeViewEx\testTreeView\obj\Debug\testTreeView.pdb
文件 180 2012-08-08 12:18 TreeViewEx\testTreeView\obj\Debug\testTreeView.Properties.Resources.resources
目录 0 2012-08-09 13:27 TreeViewEx\testTreeView\obj\Release\
目录 0 2012-08-08 13:37 TreeViewEx\testTreeView\obj\Release\TempPE\
文件 842 2012-08-09 13:26 TreeViewEx\testTreeView\obj\Release\testTreeView.csproj.GenerateResource.Cache
文件 24576 2012-08-09 13:27 TreeViewEx\testTreeView\obj\Release\testTreeView.exe
文件 180 2012-08-09 13:26 TreeViewEx\testTreeView\obj\Release\testTreeView.Form1.resources
文件 34304 2012-08-09 13:27 TreeViewEx\testTreeView\obj\Release\testTreeView.pdb
文件 180 2012-08-08 13:37 TreeViewEx\testTreeView\obj\Release\testTreeView.Properties.Resources.resources
............此处省略10个文件信息
相关资源
- C#解析HL7消息的库135797
- C# OCR数字识别实例,采用TessnetOcr,对
- 考试管理系统 - C#源码
- asp.net C#购物车源代码
- C#实时网络流量监听源码
- C#百度地图源码
- Visual C#.2010从入门到精通配套源程序
- C# 软件版本更新
- C#屏幕软键盘源码,可以自己定制界面
- 智慧城市 智能家居 C# 源代码
- c#获取mobile手机的IMEI和IMSI
- C#实现简单QQ聊天程序
- 操作系统 模拟的 欢迎下载 C#版
- C#写的计算机性能监控程序
- 用C#实现邮件发送,有点类似于outlo
- MVC model层代码生成器 C#
- c#小型图书销售系统
- C# Socket Server Client 通讯应用 完整的服
- c# winform 自动登录 百度账户 源代码
- C#编写的16进制计算器
- C#TCP通信协议
- C# 数据表(Dataset)操作 合并 查询一
- C#语音识别系统speechsdk51,SpeechSDK51L
- 数据库备份还原工具1.0 C# 源码
-
[免费]xm
lDocument 节点遍历C# - EQ2008LEDc#开发实例
- DirectX.Capturec# winform 操作摄像头录像附
- c# 实现的最大最小距离方法对鸢尾花
- C#版保龄球记分代码
- C#自定义控件
评论
共有 条评论