我已经扩展了 TreeView 控件,以创建我自己的具有更多功能的版本。
在 Visual Studio 的“设计视图”中,我可以单击一个控件,在“属性”面板中查看其事件,然后双击一个事件旁边的事件,这会将我带入代码隐藏并为该事件创建一个空的处理程序。
我遇到的问题是,除非我在事件中明确声明以下内容,否则我的“CustomTreeView”控件实际上不会触发此处理程序'Page_Load'
:
CustomTreeView1.SelectedNodeChanged += new EventHandler(CustomTreeView1_SelectedNodeChanged);
所以我可以让它工作,但我想知道为什么我必须这样做,以及我如何能够通过让它自动发生来绕过它。
更新 1:我刚刚从头开始使用包含 Web 应用程序和控件库项目的新解决方案,以可能的最基本方式扩展 TreeView 并测试事件。它们按预期工作,无需额外的连线代码。我认为这个解决方案总体上出了点问题。
更新 2:我有一个解决方案 - Visual Web Developer Express 2010 在响应添加的事件处理程序的方式上非常受欢迎。有时,我在属性面板中双击事件名称,即使它在我的代码隐藏中创建了一个处理程序,它也根本不会更新 aspx 页面中的标记。其他时候,它会将所有小写的事件名称添加到标签中,这意味着它在运行时会丢失。我会检查是否有我缺少的补丁。
更新 3:VWD 现在在更多方面表现得非常奇怪 - 通过智能标记对 GUI 向导中的 SqlDatasource 所做的更改不会保存到底层标记代码中。我将此问题归结为安装损坏。