现在的位置: 首页 > 综合 > 正文

控件设计时的属性页定位办法

2013年07月16日 ⁄ 综合 ⁄ 共 1130字 ⁄ 字号 评论关闭
控件设计时的属性页定位办法:
取得IHtmlDocument3 就随心所欲了。

public LabelComponentEditorForm(ComponentEditorLabel designComponent)
        
{
            
this.designComponent = designComponent;
            
            
int innerLeft = Convert.ToInt32(designComponent.Style["clientX"]);
            
int innerTop = Convert.ToInt32(designComponent.Style["clientY"]);

            IDesignerHost host 
= (IDesignerHost) designComponent.Site.GetService(typeof (IDesignerHost));
            ControlDesigner labelDesigner 
= (ControlDesigner) host.GetDesigner(designComponent);
            
object parent = labelDesigner.Behavior.GetAttribute("document"false);
            IHTMLDocument2 doc 
= (IHTMLDocument2) parent;
            mshtml.IHTMLWindow3 window 
= (IHTMLWindow3) doc.parentWindow;
            
int screenLeft = window.screenLeft;
            
int screenTop = window.screenTop;
            
            
this.Location = new Point(screenLeft + innerLeft, screenTop + innerTop);

            
//
            
// Windows 窗体设计器支持所必需的
            
//
            InitializeComponent();

            
//
            
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
            
//
        }

效果如下:

抱歉!评论已关闭.