我正在探索 EnvDTE 库,并构建一个表单生成器。
我已成功将控件添加到表单,但是,控件的代码未添加到表单设计器(formname.Designer.cs),如果我想添加事件处理程序,这是一个问题,因为尚未声明控件.
当我双击一个将事件处理程序添加到表单设计器中的按钮的按钮时,它会添加表单设计器中的所有控件。所以任何更新都应该这样做。
这是我添加控件的方式:
//this ProjectItem (itemFrom) is a reference to a recently added form,
//and its only window is my form
Window myWindow = itemForm.Document.Windows.Item(1);
IDesignerHost myDesigner = (IDesignerHost)myWindow.Object;
IComponent comp = myDesigner.CreateComponent(typeof(Button), "MyNewButton);
问题:如何以编程方式更新表单设计器(使用 EnvDte 或 VS API)以获取对我的控件的引用并向它们添加事件处理程序?
奇怪的一件事:我发现了一些关于通过 VS 加载项向表单添加控件的教程,但没有一个提到这个问题。