读书人

关于自定义控件有关问题100分求解

发布时间: 2012-02-19 19:43:37 作者: rapoo

关于自定义控件问题高手进100分求解
当用户把工具箱里的自定义控件拖放到自己的C/S 或B/S界面上时,自定义控件能否向用户CS文件里自动添加程序代码。如果能请问在写自定义控件时应该怎么写。
因为目前我做了一个自定义控件,当用户使用的时候他需要手动在他自己的项目里面添加代码,我能否在自定义控件里写好这段代码,当用户拖动控件到界面时,自定义控件就自动把我写好的代码添加到用户的程序里面去。

[解决办法]
给你一个思路,在你的自定义控件的设计器中引用vs2005的库,好象是envdt和envdt80.通过它们可以操作工程中的任意对象,当然也包括添加代码。但我对这个库不太熟悉.你看一下MSDN吧。
[解决办法]
可以的,
有两个重点:
1、拖放控件\组件的时机,请看我的blog:
public class Class1Designer : ComponentDesigner
{
public Class1Designer() : base()
{

}

// 从工具箱上拖放一个Component时,执行此方法。
public override void InitializeNewComponent(System.Collections.IDictionary defaultValues)
{

}
}

向cs中添加代码,应该写在InitializeNewComponent方法中


2、操纵DTE向cs中加代码:
添加EnvDTE.dll和EnvDTE80.dll

using EnvDTE;
using EnvDTE80;

TextDocument textDoc = _applicationObject.ActiveDocument.Object( "TextDocument ") as TextDocument;
textDoc.Selection.Insert( "mapserver ", 0);

读书人网 >.NET

热点推荐