首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

C# 在圆桌面程序里集成webbrowser和Ext

2012-12-22 
C# 在桌面程序里集成webbrowser和Ext这些天 一直在赶项目,所以也没什么时间写博客。今天抽出一点点空来写个

C# 在桌面程序里集成webbrowser和Ext

这些天 一直在赶项目,所以也没什么时间写博客。今天抽出一点点空来写个。

由于项目的需要,我测试了下 在桌面软件里面嵌入网页(webbrowser),然后在后台用C#代码操作嵌入的页面,甚至还加上了Ext,结果跑得很顺利,下面一个一个讲:

1、加载本地网页

拖一个form,并放入一个WebBrowser,假设id为webBrowser1。

把网页放到程序运行时的目录里面,并用如下方法找到此网页:

?? ? ? ? ? ?string curDir = Environment.CurrentDirectory+"\\webPage.htm";

当然,也可以不用?Environment.CurrentDirectory,还有其它 的方法获得程序运行时目录,有兴趣去google一下。

然后加载些网页:

webBrowser1.Navigate(curDir);

?

2、给网页中的按钮添加事件:

?

?

?

C# 在圆桌面程序里集成webbrowser和Ext

注意一点:上图中间的两个大按钮“测试”和“打印预览” 都是在form中拖出来的,不是原网页的。由此可以看出,Form里面的内容是可以和加载的网页的内容并存的。

?上面的这个网页中,已经有一句js的事件,我们再添加一个事件:

先给中间的那个大的“测试”按钮加上事件,由于它是用C#代码生成的,所以双击就可以生成一个事件:

private void button1_Click(object sender, EventArgs e){}

我们在这事件里面给网页的左上角的那个小“测试”按钮加上事件:

先得到网页的 document元素:

?? ? ? ? ? ?HtmlDocument html = webBrowser1.Document;

再根据id得到那个小按钮:

?? ? ? ? ? ?HtmlElement btnTest = html.All["btnTest"];

再给它添加事件:

?

?

?代码中,要先判断得到的元素是不是为空,如果不是,就进入下一步:加事件,上面只给出两种方法:

?

?

?

5、得到span里面的内容:

?

?

?上面的三种方法都可以。

?

6、打印相关:

?

?

?

?由上图可以看出,用C#生成的两个按钮 不会在打印时出现。这一点很重要。

/////////////////////////////////////////////////

?

?

下面我上传了整个源码,有兴趣可以搞下来看看。上面的代码都在Form1.cs里面,而ExtForm.cs文件是下面要讲的内容。代码的运行环境:vs2010,代码中的两个form 要运行的话,可以修改Program.cs文件,让它选择一个运行。

?

////////////////////////////////////////////////

?

7、嵌入Ext。

很简单,就是写一个可以单独运行起来的Ext页面,嵌入到网页中就行了。下面给一个小例子:

?

C# 在圆桌面程序里集成webbrowser和Ext

?这是一个比较简单的Ext登陆框 ,是一个浮动窗口,可以在form里面拉动,之所以要把txtName 和 btnSubmit 单独写出来 是为了能在C#代码中调用。这一点也很重要。

?

8、用C#代码给网页添加内容:

?

?


C# 在圆桌面程序里集成webbrowser和Ext
??在id为testDiv的div里面添加一些html文本,供下面使用。上图中的button1是用C#拖出来的。

?

还可以用C#在网页中加入一个元素,比如一个script标签,并在里面添加js脚本:

?

?

?

10、给上面的文字:”双击我试试“加上双击事件:

?

?

?

?

?让它被双击时弹出Ext浮动窗口:

?

?

?

?

?

C# 在圆桌面程序里集成webbrowser和Ext

?11、用js操作C#代码。

这是最诱人的应用,具体实现如下:

(1)先引入命名空间:

using System.Security.Permissions; //一定要引入命名空间

(2)在类的上面写上:

?

?

?其中使用到的函数如下:

?

?

?

?目前就先讲这么一些应用,之后如果还用到新的内容 我再补上。

热点排行
Bad Request.