当前位置: 代码迷 >> .NET组件控件 >> 关于自定义控件有关问题100分求解
  详细解决方案

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

热度:4275   发布时间:2013-02-25 00:00:00.0
关于自定义控件问题高手进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);
  相关解决方案