您现在的位置是:主页 > news > 国外哪些做问卷的网站/关键词排名优化江苏的团队

国外哪些做问卷的网站/关键词排名优化江苏的团队

admin2025/5/17 9:38:56news

简介国外哪些做问卷的网站,关键词排名优化江苏的团队,福永镇网站建设,河南关键词排名顾问根据自己对dsoframer控件的学习&#xff0c;想把dsoframer控件进行简单的包装为C#的usercontrol&#xff0c;大体需要作如下&#xff1a; 1.使用前注册该dsoframer控件&#xff0c;我把该dso控件当作嵌入资源&#xff0c;用学习笔记1中的方法注册即可 Code/// <summary> …

国外哪些做问卷的网站,关键词排名优化江苏的团队,福永镇网站建设,河南关键词排名顾问根据自己对dsoframer控件的学习&#xff0c;想把dsoframer控件进行简单的包装为C#的usercontrol&#xff0c;大体需要作如下&#xff1a; 1.使用前注册该dsoframer控件&#xff0c;我把该dso控件当作嵌入资源&#xff0c;用学习笔记1中的方法注册即可 Code/// <summary> …

根据自己对dsoframer控件的学习,想把dsoframer控件进行简单的包装为C#的usercontrol,大体需要作如下:
1.使用前注册该dsoframer控件,我把该dso控件当作嵌入资源,用学习笔记1中的方法注册即可

ContractedBlock.gifExpandedBlockStart.gifCode
 /// <summary>
  
/// usercontrol控件初始化
  
/// </summary>
  
/// <param name="_sFilePath">本地文件全路径</param>
  public void Init(string _sFilePath)
  {
   
try
   {
    RegControl();
//注册控件
    if(!CheckFile(_sFilePath))//判断是否为所支持的office文件
    {
     
throw new ApplicationException("文件不存在或未标识的文件格式!");
    }
    AddOfficeControl();
//这里一定要先把dso控件加到界面上才能初始化dso控件,这个dso控件在没有被show出来之前是不能进行初始化操作的,很奇怪为什 

        
//么作者这样考虑..
    InitOfficeControl(_sFilePath);
   }
   
catch(Exception ex)
   {
    
throw ex;
   }
  }

  
public bool RegControl()
    {
      
try
      {
        Assembly thisExe 
= Assembly.GetExecutingAssembly();
        System.IO.Stream myS 
= thisExe.GetManifestResourceStream("NameSpaceName.dsoframer.ocx");
   
        
string sPath = “该ocx文件的实际路径”+ @"/dsoframer.ocx";
        ProcessStartInfo psi 
= new ProcessStartInfo("regsvr32","/s " +sPath);
        Process.Start(psi);
      }
      
catch(Exception ex)
      {
        MessageBox.Show(ex.Message);
      }
     
return true;
    }

2.动态向usercontrol添加dsoframer实例
                
private AxDSOFramer.AxFramerControl m_axFramerControl = new AxDSOFramer.AxFramerControl();
  
/// <summary>
  
/// 添加控件
  
/// </summary>
  private void AddOfficeControl()
  {
   
try
   {
    
this.m_Panel_Control.Controls.Add(m_axFramerControl);
    m_axFramerControl.Dock 
= DockStyle.Fill;
   }
   
catch(Exception ex)
   {
    
throw ex;
   }
  }
3.初始化dsoframer控件 ,我这里用已经有的文件进行dso初始化,
  
/// <summary>
  
/// 初始化office控件
  
/// </summary>
  
/// <param name="_sFilePath">本地文档路径</param>
  private void InitOfficeControl(string _sFilePath)
  {
   
try
   {
    
if(m_axFramerControl == null)
    {
     
throw new ApplicationException("请先初始化office控件对象!");
    }
    
string sExt = System.IO.Path.GetExtension(_sFilePath).Replace(".","");
    
//this.m_axFramerControl.CreateNew(this.LoadOpenFileType(sExt));//创建新的文件
    this.m_axFramerControl.Open(_sFilePath,false,this.LoadOpenFileType(sExt),"","");//打开文件
    
//隐藏标题
    this.m_axFramerControl.Titlebar = false;
   }
   
catch(Exception ex)
   {
    
throw ex;
   }
  }

     下面这个方法是dso打开文件时需要的一个参数,代表office文件类型
  
/// <summary>
  
/// 根据后缀名得到打开方式
  
/// </summary>
  
/// <param name="_sExten"></param>
  
/// <returns></returns>
  private string LoadOpenFileType(string _sExten)
  {
   
try
   {
    
string sOpenType = "";
    
switch (_sExten.ToLower())
    {
     
case "xls":
      sOpenType 
= "Excel.Sheet";
      
break;
     
case "doc":
      sOpenType 
= "Word.Document";
      
break;
     
case "ppt":
      sOpenType 
= "PowerPoint.Show";
      
break;
     
case "vsd":
      sOpenType 
= "Visio.Drawing";
      
break;
     
default:
      sOpenType 
= "Word.Document";
      
break;
    }
    
return sOpenType;

   }
   
catch (Exception ex)
   {
    
throw ex;
   }
  }

4.我觉的最重要的一步,就是公布dso当前的活动对象,因为自己做这个usercontrol功能不强,但是不能把人家dso功能给杀掉,给使用者留一个更大的空间。。。。
  
/// <summary>
  
/// 获取当前操作的文档
  
/// </summary>
  public object ActiveDocument
  {
   
get
   {
    
return this.m_axFramerControl.ActiveDocument;
   }
  }

  
/// <summary>
  
/// 获取当前控件对象
  
/// </summary>
  public AxDSOFramer.AxFramerControl OfficeObject
  {
   
get
   {
    
return this.m_axFramerControl;
   }
  }
  
/// <summary>
  
/// 保存
  
/// </summary>
  public void Save()
  {
   
try
   {
    
//先保存
    this.m_axFramerControl.Save(true,true,"","");
   }
   
catch(Exception ex)
   {
    
throw ex;
   }
  } 


  
/// <summary>
  
/// 另存为
  
/// </summary>
  public void SaveAs()
  {
   
try
   {
    
//另存为
    SaveFileDialog sfd = new SaveFileDialog();
    
string sExt = System.IO.Path.GetExtension(this.m_sFilePath).Replace(".","");
    sfd.Filter 
= sExt;
    
if(sfd.ShowDialog() == DialogResult.OK)
    {
     
string sSavePath = sfd.FileName;
     
if(System.IO.File.Exists(sSavePath))
     {
      System.IO.File.Delete(sSavePath);
     }
     
this.m_axFramerControl.SaveAs(sSavePath,this.LoadOpenFileType(sExt));
    }
   }
   
catch(Exception ex)
   {
    
throw ex;
   }
  }

  
/// <summary>
  
/// 关闭当前界面
  
/// </summary>
  public void Close()
  {
   
try
   {
    
if(this.m_axFramerControl != null)
    {
     
this.m_axFramerControl.Close();
    }
   }
   
catch(Exception ex)
   {
    
throw ex;
   }
  }

源代码/Files/wenjl520/Source.rar

DLL:/Files/wenjl520/dsoframer.rar

版权说明

  如果标题未标有<转载、转>等字则属于作者原创,欢迎转载,其版权归作者和博客园共有。
  作      者:温景良
  文章出处:http://wenjl520.cnblogs.com/  或  http://www.cnblogs.com/

分类: C#,Excel
好文要顶 关注我 收藏该文
温景良(Jason)
关注 - 32
粉丝 - 161
+加关注
0
0
« 上一篇:Worksheet的打印函数
» 下一篇:C#动态执行代码收藏
posted @ 2008-12-29 15:22 温景良(Jason) Views(1176) Comments(1) Edit 收藏

#1楼15462672009/6/3 10:42:29 2009-06-03 10:42 | 大傻瓜
正在给头儿逼着看这个控件的代码,不知道从哪儿入手,看得人一头雾水,能否指点一二,谢谢!!
支持(0)反对(0)

刷新评论刷新页面返回顶部
【推荐】超50万VC++源码: 大型工控、组态\仿真、建模CAD源码2018!
【推荐】腾讯云新用户域名抢购1元起,抓紧抢购
ke0108
最新IT新闻:
· 精准率首次超过人类!阿里巴巴机器阅读理解打破世界纪录
· 技术帖:每天被今日头条推送文章 背后的算法技术是什么?
· 支付宝实体版老黄历问世:全球限量1000册
· 趣店被蚂蚁金服送上纽交所,现在是时候该独立了
· 蚂蚁宝卡升级:支付宝/微博即将免流
» 更多新闻...
阿里云C2-1208
最新知识库文章:
· 步入云计算
· 以操作系统的角度述说线程与进程
· 软件测试转型之路
· 门内门外看招聘
· 大道至简,职场上做人做事做管理
» 更多知识库文章...

公告

本文转自我的程序人生博客园博客,原文链接:http://www.cnblogs.com/wenjl520/archive/2008/12/29/1364544.html,如需转载请自行联系原作者