易截截图软件、单文件、免安装、纯绿色、仅160KB

C#中实现WebBrowser控件的HTML源代码读写

趁周末想折腾一下嵌入ASP.NET的WinForm程序
需要用到WebBrowser控件的HTML源码读写
就把以前的一些代码片断移值到C#下
顺便发个帖子备忘,呵呵
  
思路其实很简单,直接通过document.documentElement.outerHTML
或者使用IPersistStreamInit接口直接对流进行处理
前者我就不废话了,后者实现方法如下
  
首先是写入HTML到已初始化的WebBrowser控件
初始化可以通过Navigate("about:blank")完成
必须确保WebBrowser.Document != null
否则应该推迟到DocumentComplete事件再读写
  
UCOMIStream stream = null;
  
CreateStreamOnHGlobal(Marshal.StringToHGlobalUni(value), true, out stream);
   
if(stream != null)
  
{
    IPersistStreamInit persistentStreamInit =
      (IPersistStreamInit)WebBrowser.Document;
  
    persistentStreamInit.InitNew();
    persistentStreamInit.Load(stream);
    persistentStreamInit = null;
}
  
UCOMIStream是COM中IStream的CLR版本
CreateStreamOnHGlobal函数从一个字符串的地址
创建一个IStream供使用
  
[DllImport("ole32.dll", PreserveSig=false)]
static extern void CreateStreamOnHGlobal(IntPtr hGlobal,
    Boolean fDeleteOnRelease, [Out] out UCOMIStream pStream);
  
然后就是通过IPersistStreamInit接口初始化并载入HTML源码,
IPersistStreamInit接口CLR缺省没有导入,定义如下
  
[ComVisible(true), ComImport(), Guid("7FD52380-4E07-101B-AE2D-08002B2EC713"),
   InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
public interface IPersistStreamInit
{
    void GetClassID([In, Out] ref Guid pClassID);
  
    [return: MarshalAs(UnmanagedType.I4)] [PreserveSig]
    int IsDirty();
  
    void Load([In, MarshalAs(UnmanagedType.Interface)] UCOMIStream pstm);
    void Save([In, MarshalAs(UnmanagedType.Interface)] UCOMIStream pstm,
 


相关文档:

Web开发 第一部分 HTML教程基础(十一)其它块标签

这里说的其它标签,主要是要配合后面讲的CSS样式表来使用的,如果没有样式表,则这些标签显示效果不明显。
这里我们先把这些标签记住。
------------
组合标签
span标签是一个组合标签,作用是将连续的元素(如一段文本类型元素)通过该标签分成若干个子元素。
和p标签不同,默认情况下span标签内的文本不会附加任何特 ......

Html 元素自动下拉


  前台脚本的元素自动下拉扩展:
    具体是当鼠标放在一个元素上时,这个元素如果显示不全,就自动扩展,并且不会影响其它的元素.移开鼠标该元素自动还原成原来的样式.
 
    在Coding 的过程中,一个跨Browser的问题是:
    在每一次显示 float div前 ......

C#连接Access和SQL Server数据库

C#连接连接Access
首先看一个例子代码片断:
程序代码:
--------------------------------------------------------------------------------
using System.Data;
using System.Data.OleDb;
......
string strConnection="Provider=Microsoft.Jet.OleDb.4.0;";
strConnection+=@"Data Source=C:\BegASPNET\Northwin ......

在flex中使用嵌入html文件以解决显示html的问题

想在flex中真实的显示html,但是texteara,lable,text中只支持部分html标签
<a>、<b>、<br>、<font>、<img>如果用img又存在显示自动换行的问题。只有采用嵌入html的方法来解决。
1.flexdemo1
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe ......

asp.net C#网站项目 获取物理路径、虚拟路径的方法

-----------------------------.cs类文件中
当前项目的物理路径嘛:  
   
  strPath   =   this.Server.MapPath(Request.PhysicalApplicationPath);  
   
  你要说明什么“类文件”。任何PAGE、CONTROL代码也是在类 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号