微软的原文,在制作OFFICE文档级程序中使用,正确,没有问题。
private void ExcelRangeAddControl()
{    UserControl1 customUserControl = new UserControl1();
    UserControl2 customUserControl2 = new UserControl2();    Microsoft.Office.Tools.Excel.ControlSite dynamicControl =
        this.Controls.AddControl(customUserControl,
        0, 0, 150, 150, "dynamicControl");    Microsoft.Office.Tools.Excel.ControlSite dynamicControl2 =
        this.Controls.AddControl(customUserControl2, 200, 0,
        150, 150, "dynamicControl2");    customUserControl.BackColor = Color.Blue;
    customUserControl2.BackColor = Color.Green;    customUserControl.Top = 100;
    dynamicControl2.Top = 100;
}
可是,在外接程序中,就需要修改实例化对象(红色的This),请问在外接程序开发中,需要修改成什么。

解决方案 »

  1.   

    外接程序中你需要把对象传过来,//外接先传这个对象
    public Control objControl
    {get;set;}private void ExcelRangeAddControl()
     {
     
        UserControl1 customUserControl = new UserControl1();
         UserControl2 customUserControl2 = new UserControl2();
     
        Microsoft.Office.Tools.Excel.ControlSite dynamicControl =
             objControl.Controls.AddControl(customUserControl,
             0, 0, 150, 150, "dynamicControl");
     
        Microsoft.Office.Tools.Excel.ControlSite dynamicControl2 =
             objControl.Controls.AddControl(customUserControl2, 200, 0,
             150, 150, "dynamicControl2");
     
        customUserControl.BackColor = Color.Blue;
         customUserControl2.BackColor = Color.Green;
     
        customUserControl.Top = 100;
         dynamicControl2.Top = 100;
     }
      

  2.   

     ExcelRangeAddControl用在哪个类中,this就是谁
      

  3.   


    ExcelAddIn9
    这个是对象名,项目名
      

  4.   

    CSDN上就没高手知道这个问题?