当前位置: 首页 > news >正文

Visual Basic创建工具栏

记事本是Windows中最常用的应用程序之一,其程序小、使用方便,是用户编辑文本的有力工具。编写本程序比较简单,且其中的大部分问题也都陆续介绍过。

建立好的用户界面,如图7.16所示。窗体界面中应包括:菜单、工具栏、公共对话框及一个文本框。这里并没有使用标准的TextBox控件,使用的是ActiveX中的RichTextBox控件(Microsoft Rich Textbox Control 6.0),RichTextBox控件不仅允许输入和编辑文本,同时还提供了标准TextBox控件未具有的、更高级的指定格式的许多功能,如改变部分文本字体、颜色以及创建上标和下标调整段落的格式等。

为了能动态显示已经打开文件的历史记录,需在文件菜单条中添加5个Visible属性为False的子菜单数组mnuFileH(0)mnuFileH(4),分别表示分隔线及4个历史记录。然后建立一个通用过程,以便在文件打开、保存时调用:

Dim num As Integer

Private Sub Filehide()

mnuFileH(0).Visible = True

num = num + 1

If num > 4 Then

   num = 1

   mnuFileH(num).Visible = True

   mnuFileH(num).Caption = CommonDialog1.FileName

Else

   mnuFileH(num).Visible = True

   mnuFileH(num).Caption = CommonDialog1.FileName

End If

End Sub

图7.16  记事本的设计界面

为了能够使文本框在任何时候都能充满窗口,应在窗体的Resize中设置RichTextBox1的尺寸,并将其ScrollBars属性值设为3-rtfBoth

Private Sub Form_Resize()

With RichTextBox1

  .Top = Toolbar1.Height

  .Left = 0

  .Height = Form1.ScaleHeight - Toolbar1.Height

  .Width = Form1.ScaleWidth

End With

End Sub

文件菜单中新建、打开、保存、另存为以及退出的代码如下:

Private Sub mnuFileN_Click(Index As Integer)

Dim fso As New FileSystemObject, fil As TextStream

Select Case Index

   Case 0

      RichTextBox1.Text = ""

      Form1.Caption = "未命名"

   Case 1

      CommonDialog1.DialogTitle = "打开"

      CommonDialog1.ShowOpen

      fname = CommonDialog1.FileName

      If fname <> "" Then

         RichTextBox1.Text = ""

         Set fil = fso.OpenTextFile(fname)

         b = ""

         b = fil.ReadAll

         RichTextBox1.Text = Left(b, 20000)

      End If

      Form1.Caption = fname

      Call Filehide

   Case 2

      CommonDialog1.DialogTitle = "保存"

      If Form1.Caption = "未命名" Or Form1.Caption = "" Then

         CommonDialog1.ShowSave

         fname = CommonDialog1.FileName

         Call Filehide

      Else

         fname = Form1.Caption

      End If

      If fname <> "" Then

         Set fil = fso.CreateTextFile(fname, True)

         fil.Write RichTextBox1.Text

         Form1.Caption = fname

      End If

   Case 3

      CommonDialog1.DialogTitle = "另存为"

      CommonDialog1.ShowSave

      fname = CommonDialog1.FileName

      If fname <> "" Then

         Set fil = fso.CreateTextFile(fname, True)

         fil.Write RichTextBox1.Text

         Form1.Caption = fname

         Call Filehide

      End If

End Select

RichTextBox1.SetFocus

End Sub

Private Sub mnuFileExit_Click()  '退出

Unload Me

End Sub

单击“文件”菜单历史记录选项的过程代码为:

Private Sub mnuFileH_Click(Index As Integer)

Dim fso As New FileSystemObject, fil As TextStream

fname = mnuFileH(Index).Caption

RichTextBox1.Text = ""

Set fil = fso.OpenTextFile(fname)

b = ""

b = fil.ReadAll

RichTextBox1.Text = Left(b, 20000)

Form1.Caption = fname

End Sub

“编辑”菜单各选项的单击事件代码为:

Private Sub mnuEditT_Click(Index As Integer)

Select Case Index

   Case 0   '剪切

      Clipboard.SetText RichTextBox1.SelRTF

      RichTextBox1.SelRTF = ""

   Case 1   '复制

      Clipboard.SetText RichTextBox1.SelRTF

   Case 2   '粘贴

      RichTextBox1.SelRTF = Clipboard.GetText

   Case 3   '清除

      RichTextBox1.SelRTF = ""

   Case 5   '字体

      On Error Resume Next

      CommonDialog1.ShowFont

      If Err = cdlCancel Then

      Else

        RichTextBox1.SelFontName = CommonDialog1.FontName

        RichTextBox1.SelFontSize = CommonDialog1.FontSize

        RichTextBox1.SelBold = CommonDialog1.FontBold

        RichTextBox1.SelItalic = CommonDialog1.FontItalic

        RichTextBox1.SelUnderline = CommonDialog1.FontUnderline

        RichTextBox1.SelStrikeThru = CommonDialog1.FontStrikethru

        RichTextBox1.SelColor = CommonDialog1.Color

      End If

   Case 7   '全选

      RichTextBox1.SelStart = 0

      RichTextBox1.SelLength = Len(RichTextBox1.Text)

End Select

End Sub

“帮助”菜单的代码为:

Private Sub mnuHelpH_Click(Index As Integer)

Select Case Index

   Case 0

     CommonDialog1.ShowHelp

   Case 2

     MsgBox "Notpad 1.0 demo,2001,8", , "版本信息"

End Select

End Sub

工具栏中各选项代码为:

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

n = Button.Index

Select Case n

   Case 2

      Call mnuFileN_Click(0)

   Case 3

      Call mnuFileN_Click(1)

   Case 4

      Call mnuFileN_Click(2)

   Case 6

      Call mnuEditT_Click(0)

   Case 7

      Call mnuEditT_Click(1)

   Case 8

      Call mnuEditT_Click(2)

   Case 10

      RichTextBox1.SelBold = Not RichTextBox1.SelBold

   Case 11

      RichTextBox1.SelItalic = Not RichTextBox1.SelItalic

   Case 12

      RichTextBox1.SelUnderline = Not RichTextBox1.SelUnderline

End Select

End Sub

http://www.dtcms.com/a/592779.html

相关文章:

  • IDEA的Code Style配置(使用google的Java Code Stytle)
  • 一个网站空间如何放两个网站内容
  • Vue 绑定class样式
  • LeetCode 153.寻找旋转排序数组中的最小值
  • 无人船 | 图解基于MPC控制的路径跟踪算法(以全驱动无人艇WAMV为例)
  • 蓝牙标签APP与网页端操作常见问题指南
  • 深度测评解析 CANN:从 ACL 到自定义算子,解锁昇腾计算的全部潜能
  • ui作品集 网站怎么做手机app开发需要什么技术
  • 做门头上那个网站申报WordPress怎么两个标题
  • emu系列模拟器最新汉化版 安卓版 怀旧游戏模拟器全集附可运行游戏ROM
  • 前端状态管理,为什么要状态管理?(React状态管理、zustand)
  • 江西中创建设工程有限公司网站专业建设报告
  • 1024开发者节:开源发布,引领生态繁荣
  • 测试自动化Replay:让数据库迁移测试回归真实场景的一把“利器”
  • 从“死记硬背“到“主动思考“:用 Microsoft Agent Framework 重新定义 RAG
  • 重点理解线程池
  • 会议触摸中控GF-TSI11:智能会议场景的核心交互中枢
  • 开源重塑金融服务新生态|《2025年金融服务开源现状报告》深度解读与实践路径
  • pyspark入门实操
  • 扩散模型核心机制解析:U-Net调用逻辑、反向传播时机与步骤对称性
  • 怎么样搭建qq号网站做个卖车票的网站怎么做
  • apb 协议
  • NAT,代理服务,内网穿透,DNS
  • office提示应用程序无法正常启动(0xc0000142)如何解决?官方修复方法!
  • 两道算法题
  • 合肥建网站要多少钱网站空间和服务器
  • 网站优缺点分析网站备案怎么备案
  • 【Android】Android内存缓存LruCache与DiskLruCache的使用及实现原理
  • wps安装mathtype报错:错误‘48’:文件未找到:MathPage.WLL||终于解决MathPage.wll文件找不到问题(亲测有效!)
  • 苹果16Pro调研