使用.net framewrok 1.1版System.Windows.Forms.TreeView的一个问题

本文探讨了在.NET Framework 1.1中使用TreeView控件时遇到的AfterSelect事件重复触发问题,特别是在首次点击节点时。文章详细分析了事件触发的异常情况,并对比了在.NET Framework 2.0 Beta 2上的表现差异。
上个星期在使用TreeView的时候发现一个问题。假设TreeView中包含了多个根节点和子节点。如下图:
当在实例构造函数中或第一次使用他之前注册了TreeView.AfterSelect 事件,
this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);
下面为事件处理程序用来计算事件程序运行次数。
private int i = 0;
private void treeView1_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
       i++;
       this.label1.Text = i.ToString();
}
(1).当第一次点击[节点1]时,i= 1;这个没有问题;如果第一次点击其他节点,比如[节点2]或[节点1.1],那i = 2,也就是选中一次节点产生了两个AfterSelect事件,对代码进行单步调试,发现第一次事件处理程序中的e.Node.Text值为”节点1”,也就是说第一次AfterSelect事件是由[节点1]产生(这里并没有点击该节点),而第二次的事件才是所想要的事件。
(2).针对这一点,笔者试着第一次点击节点前面的展开/折叠图标(+/-),无论点击的是不是第一个根节点,都会执行相当于选中了第一个根节点的事件。第一次调用this.treeView1.Select();函数时也会如此。
 
对于(1),在.net framework 2.0 beta2上测试了一下,已经没有发生两次事件的问题,那这是不是bug? 对于(2)笔者只是对自己提醒一下在不直接选择节点的情况下也会触发AfterSelect事件,在.net framework 2.0 beta2测试结果是一样的。
 
如果要写些效率高的程序,对于事件的重复触发本人觉得是需要考虑的问题。针对上面的现象,假设在窗体的左边放了一个Treeview表示目录,而右边有个DataGrid,用来根据左边的选择列出对应于目录的产品,如果连续触发两次事件,是不是很恼火,尤其是在数据量大的情况下更是如此。
posted on 2005-10-08 20:21  秋枫 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/zhzuo/archive/2005/10/08/250505.html

Windows 系统上安装 Oracle 时,如果遇到弹窗提示需要安装 .NET Framework 3.5 并导致安装中断,通常是因为系统中缺少或未正确启用 .NET Framework 3.5 组件。以下是几种有效的解决方法: ### 使用 DISM 命令安装 .NET Framework 3.5 1. **挂载 Windows 安装镜像**:将 Windows ISO 镜像文件挂载或解压到本地磁盘,例如 `D:\临时数据`。 2. **复制 sxs 文件夹**:将镜像文件中的 `sources/sxs` 文件夹复制到本地路径,例如 `D:\临时数据\sxs`。 3. **以管理员身份运行命令提示符**,执行以下命令: ```cmd dism.exe /online /enable-feature /featurename:netfx3 /source:D:\临时数据\sxs ``` 系统将开始加载 .NET Framework 3.5 功能,等待进度条完成至 100%[^2]。 ### 使用服务器管理器安装 .NET Framework 3.5 对于 Windows Server 系统(如 Windows Server 2012),可以通过服务器管理器进行安装: 1. 打开“服务器管理器”,点击“仪表板” > “快速启动” > “添加角色和功能”。 2. 按照向导逐步点击“下一步”,直到“功能”页面。 3. 展开“.NET Framework 3.5 功能”,并勾选“.NET Framework 3.5(包括 .NET 2.0 和 3.0)”。 4. 点击“下一步”并确认安装,完成配置[^3]。 ### 使用 PowerShell 安装 1. **打开 PowerShell 作为管理员**,运行以下命令: ```powershell Install-WindowsFeature -Name NET-Framework-Core -Source D:\临时数据\sxs ``` 该命令将使用本地源文件安装 .NET Framework 3.5[^2]。 ### 注意事项 - 如果系统连接了互联网,可省略 `/source` 参数,系统将自动从 Windows Update 下载所需文件。 - 安装完成后,重启系统以确保组件生效。 - 安装 Oracle 前,请确认 Oracle 安装程序本是否与 .NET Framework 3.5 兼容。如果问题仍然存在,建议检查 Oracle 官方文档以获取兼容性信息[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值