vb.net 教程 12-6 webbrowser 文本编辑器 1

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。
现在不少网页的blog都是利用了将网页设置为编辑模式实现。

本节探讨使用WebBrowser做一个本地文本编辑器。

使用到的知识包括:Vb.net、Javascript、Html

 

由于之前已经对WebBrowser控件有了很好的认识,实际本节更多的是调用Document.ExecCommand方法。

设计界面:

 

使用到的常量:

    Private Const HTML_COMMAND_BOLD = "Bold"                       '加粗
    Private Const HTML_COMMAND_UNDERLINE = "Underline"             '下划线
    Private Const HTML_COMMAND_ITALIC = "Italic"                   '斜体
    Private Const HTML_COMMAND_SUBSCRIPT = "Subscript"             '下标
    Private Const HTML_COMMAND_SUPERSCRIPT = "Superscript"         '上标
    Private Const HTML_COMMAND_STRIKE_THROUGH = "StrikeThrough"    '删除线
    Private Const HTML_COMMAND_FONT_NAME = "FontName"              '字体
    Private Const HTML_COMMAND_FONT_SIZE = "FontSize"              '字号
    Private Const HTML_COMMAND_FORE_COLOR = "ForeColor"            '字体前景色
    Private Const HTML_COMMAND_BACK_COLOR = "BackColor"            '字体背景色
    Private Const HTML_COMMAND_INSERT_FORMAT_BLOCK = "FormatBlock" '加粗
    Private Const HTML_COMMAND_REMOVE_FORMAT = "RemoveFormat"      '清除样式
    Private Const HTML_COMMAND_JUSTIFY_LEFT = "JustifyLeft"        '文本左对齐
    Private Const HTML_COMMAND_JUSTIFY_CENTER = "JustifyCenter"    '文本中间对齐
    Private Const HTML_COMMAND_JUSTIFY_RIGHT = "JustifyRight"      '文本右对齐
    Private Const HTML_COMMAND_JUSTIFY_FULL = "JustifyFull"        '文本两端对齐
    Private Const HTML_COMMAND_INDENT = "Indent"                   '增大缩进量
    Private Const HTML_COMMAND_OUTDENT = "Outdent"                 '减小缩进量
    Private Const HTML_COMMAND_INSERT_LINE = "InsertHorizontalRule" '插入分割符
    Private Const HTML_COMMAND_INSERT_LIST = "Insert{0}List"         ' replace with (Un)Ordered 插入项目符号或项目编号
    Private Const HTML_COMMAND_INSERT_IMAGE = "InsertImage"         '插入图像
    Private Const HTML_COMMAND_INSERT_LINK = "CreateLink"           '插入链接
    Private Const HTML_COMMAND_REMOVE_LINK = "Unlink"               '移除链接
    Private Const HTML_COMMAND_TEXT_CUT = "Cut"                     '剪切
    Private Const HTML_COMMAND_TEXT_COPY = "Copy"                   '复制
    Private Const HTML_COMMAND_TEXT_PASTE = "Paste"                 '粘贴
    Private Const HTML_COMMAND_TEXT_DELETE = "Delete"               '删除
    Private Const HTML_COMMAND_TEXT_UNDO = "Undo"                   '撤销
    Private Const HTML_COMMAND_TEXT_REDO = "Redo"                   '恢复
    Private Const HTML_COMMAND_TEXT_SELECT_ALL = "SelectAll"        '全选
    Private Const HTML_COMMAND_TEXT_UNSELECT = "Unselect"           '取消选择
    Private Const HTML_COMMAND_TEXT_PRINT = "Print"                 ' 打印
    Private Const HTML_COMMAND_EDITMODE = "EditMode"                ' 编辑模式
    Private Const HTML_COMMAND_BROWSEMODE = "BrowseMode"            ' 浏览模式
    Private Const HTML_COMMAND_OVERWRITE = "OverWrite"             '转换插入、覆写模式

 

窗体载入时设置字体和字号

    Private Sub frmBlog_Load(sender As Object, e As EventArgs) Handles Me.Load
        Dim linkhtm As String = "about:blank" 'Application.StartupPath & "\view.htm"
        wbBlog.Url = New Uri(linkhtm)

        wbBlog.Document.ExecCommand("EditMode", False, "")          '设置为可编辑模式

        Call setFontName()
        Call setFontSize()
    End Sub

    ' 设置字体
    Private Sub setFontName()
        Dim computerFont As New System.Drawing.Text.InstalledFontCollection
        For Each font_family As FontFamily In computerFont.Families
            If font_family.IsStyleAvailable(FontStyle.Regular) Then
                tscFont.Items.Add(font_family.Name)
            End If
        Next
        tscFont.SelectedIndex = 0
    End Sub

    '设置字号
    Private Sub setFontSize()

        tscFontSize.Items.Add("一号字")
        tscFontSize.Items.Add("二号字")
        tscFontSize.Items.Add("三号字")
        tscFontSize.Items.Add("四号字")
        tscFontSize.Items.Add("五号字")
        tscFontSize.Items.Add("六号字")
        tscFontSize.Items.Add("七号字")
        tscFontSize.SelectedIndex = 0
    End Sub

 

 

 

由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。

学习更多vb.net知识,请参看 vb.net 教程 目录

 

VB.NET中,如果你想要在一个WebBrowser控件WebBrowser1)中加载Excel文件并隐藏其默认的编辑栏,可以使用VBA宏来实现这个功能。VBA宏可以在后台运行,控制Excel的行为。以下是步骤: 1. 首先,你需要编写一个VBA宏,让它在打开Excel文件时自动隐藏编辑栏。例如,在一个新的Excel工作簿中,添加以下代码到Module1: ```vba Sub HideToolBar() ThisWorkbook.Windows(1).Visible = False '假设只有一个窗口 Application.DisplayStatusBar = False '隐藏状态栏 End Sub ``` 2. 将此宏保存到Excel工程(`.xlsm`文件),然后关闭它。 3. 在VB.NET中,设置WebBrowser1的Document属性为该包含宏的工作簿的路径,例如: ```vbnet Dim excelFilePath As String = "path_to_your_excel_file.xlsm" WebBrowser1.Navigate(excelFilePath) ``` 4. 然而,由于浏览器的安全限制,你无法直接从WebBrowser1中激活VBA宏。所以需要创建一个POST请求来触发VBA。你可以使用如下的C#代码来发送一个请求(这里仅作示例,实际应用可能需要更复杂的方式处理异步请求): ```csharp using System.Net; using System.IO; Uri uri = new Uri(excelFilePath); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); request.Method = "POST"; request.ContentType = "application/vnd.ms-excel"; // 这里可能需要序列化VBA宏或者附加其他数据 byte[] requestBody = Encoding.UTF8.GetBytes("run_macro=HideToolBar"); Stream requestStream = request.GetRequestStream(); requestStream.Write(requestBody, 0, requestBody.Length); requestStream.Close(); try { using (WebResponse response = request.GetResponse()) { Console.WriteLine(response.StatusCode); } } catch (Exception ex) { Console.WriteLine($"Error: {ex.Message}"); } ``` 请注意,这种方法可能会因为浏览器安全策略的原因不可行,而且可能不是最直观的方式来处理Excel文件。在实际项目中,可能有更好的方案,比如使用专门的Office Automation库(如EPPlus、OleDB等)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值