用VB做文本编辑器
- 格式:rtf
- 大小:71.93 KB
- 文档页数:7
实例2 文字编辑“文字编辑”程序运行后,在屏幕的中央显示一个窗体,窗体的画面如图所示。
单击“改变外观“按钮后,四个文本框中的文字外观会发生不同的变化。
单击“改变颜色”按钮后,备丈本框中的背最颜色和文字颜色会变化:单击“文字交换”按钮后,四个文本框中的文字内容从左向右进行替换,最右边文本框中的文字替换最左边文本框中的文字。
单击“滚动文字”按钮后,使4个文本框中的内容发生变化,同时各滚动条变为有效;单击“口令文本框”按钮后,最左边的文本框变为口令文本框,其中的文字变为“*”,如果再单击“改变外观”按钮,可以使口令文本框还原为普通文本框;单击“退出”按钮可退出程序运行。
每次单击按钮时,窗体和标签的显示内容会做出相应的调整。
1.设置对象的属性(1)对象的名称:该程序中有1个窗体对象,名称为Form1;1个标签对象,名称为Label1,4个文本框对象,名称从左到右分别为Text1,Text2,Text3和Text4;6个按钮对象,名称从左到右分别为Cmmand1,Command2、Command3、Command4、Command5和Command6。
(2)窗体对象Form1的属性设置:Caption属性为“文字编辑”,BackColor 属性为浅粉色,StartUpPosition属性设置为“2-屏幕中间”。
“文字编辑”程序运行后的画面(3)标签对象Label1的属性设簧:Caption属性为“文字编辑”;BackColor属性为白色,ForeColor属性为深紫色;字体属怿设置为宋体,大小为16,字形为粗体。
(4)四个文本框对象的属性设置:Text属性分别为“文”、“字”、“编”、“辑”;字体属性设置为宋体,大小为16,字形为常规;MultiLine属性设置为True,ScrollBars属性设置分别为(从左到右)0-None、1l-Horizontal、2-Verical和3-Both:BackColor属性为白色:ForeColor属性为黑色;Alignment 属性设置为0-Left Justify;PasswordChar属性设置为空串;其他属性采用默认值。
VB课程设计报告——文本编辑器学院名称:计算机学院学生姓名:专业名称:计算机科学与技术班级:一、课程设计题目用Visual Basic程序设计语言编写一个简易的文本编辑器要求:有最基本的文本编辑功能,包括复制、剪切、粘贴、字体设置、背景颜色设置、字体颜色设置;同时拥有文本管理功能,包括打开文件、保存文件;以及完整的系统运行退出等功能,所有的操作可选择设定的快捷键。
二、课程设计目的(1)目标:实现类似与WINDOWS平台下的记事本程序。
(2)涉及功能:新建、打开、保存、另存为、退出、编辑、撤销、复制、粘贴、剪切、删除、查找、全选、打印、格式、字体、颜色、查看、状态栏、帮助、关于等三、课程设计说明1创建应用程序界面2设置属性3编写代码4保存应用程序5调试,运行应用程序6生成可执行文件四、源代码Dim filecount As IntegerDim inputdata As StringDim TargetPosition As IntegerDim pos As IntegerDim targey As StringDim neirong As StringPrivate Sub A_Click()On Error Resume Nextcmndlg1.Filter = "文本文件|*.txt"cmndlg1.CancelError = Truecmndlg1.Action = 2Open cmndlg1.FileName For Output As #1Print #1, Text1.TextClose #1End SubPrivate Sub C_Click()End SubPrivate Sub D_Click()End SubPrivate Sub Form_Load()Text1.Text = ""Text1.Left = 0Text1.Top = 550Text1.Width = Form1.ScaleWidthText1.Height = Form1.ScaleHeightmnucut.Enabled = Falsemnucopy.Enabled = Falsemnudelete.Enabled = Falsemnuselectall.Enabled = Falsemnupaste.Enabled = Truemnuleft.Checked = TrueEnd SubPrivate Sub Form_Resize()'如果窗体不处于最小化text1状态,改变text1大小以适应窗体大小变化If Form1.WindowState <> 1 ThenText1.Width = Form1.Width - 120If Form1.Height < 1200 ThenForm1.Height = 1200End IfText1.Height = Form1.Height - 1350End IfEnd SubPrivate Sub Form_Unload(Cancel As Integer)Dim msg As IntegerIf Text1.Text <> neirong Thenmsg = MsgBox(" 内容已被修改,是否保存文件", 48 + vbYesNoCancel, "提示")If msg = vbYes ThenOn Error GoTo Errcmndlg1.DialogTitle = "保存文件"cmndlg1.Filter = "文本文件|*.txt"cmndlg1.CancelError = Truecmndlg1.ShowSaveOpen cmndlg1.FileName For Output As #1Print #1, Text1.TextClose #1Err:If Err.Number = cdlCancel ThenCancel = TrueEnd IfElseIf msg = vbNo ThenEndElseIf msg = vbCancel ThenCancel = TrueEnd IfElseEndEnd IfEnd SubPrivate Sub mnucopy_Click() '复制利用SetText 方法,将选中的文本放入剪贴板上Clipboard.SetText Text1.SelTextPrivate Sub mnucut_Click() '剪切Clipboard.SetText Text1.SelTextText1.SelText = ""End SubPrivate Sub mnudelete_Click() '删除Text1.SelText = ""End SubPrivate Sub mnuedit_Click() '编辑菜单项代码' 如果文本框中没有选中的内容,则剪切\复制\删除和粘贴菜单无效,否则有效If Text1.SelLength <> 0 Thenmnucut.Enabled = Truemnucopy.Enabled = Truemnudelete.Enabled = Truemnupaste.Enabled = TrueElsemnucut.Enabled = Falsemnucopy.Enabled = Falsemnudelete.Enabled = FalseEnd IfEnd SubPrivate Sub mnuexit_Click() '退出EndEnd SubPrivate Sub mnufind_Click() '查找FindText 1mnuNext.Enabled = TrueEnd SubPrivate Sub mnufont_Click() '字体On Error GoTo A:cmndlg1.Flags = cdlCFBoth Or cdlCFEffectscmndlg1.ShowFontIf cmndlg1.FontName > "" ThenText1.FontName = cmndlg1.FontNameText1.FontSize = cmndlg1.FontSizeText1.FontBold = cmndlg1.FontBoldText1.FontItalic = cmndlg1.FontItalicText1.FontStrikethru = cmndlg1.FontStrikethru Text1.FontUnderline = cmndlg1.FontUnderline Text1.FontBold = cmndlg1.FontBoldText1.ForeColor = cmndlg1.ColorA:If Err.Number < 0 ThenExit SubEnd IfEnd SubPrivate Sub mnufontcolor_Click() '字体颜色cmndlg1.ShowColorText1.ForeColor = cmndlg1.ColorEnd SubPrivate Sub mnuleft_Click() '左对齐Text1.Alignment = 0mnuleft.Checked = Truemnuright(1).Checked = Falsemnuright(2).Checked = FalseEnd SubPrivate Sub mnunew_Click() '新建Text1.Text = ""End SubPrivate Sub FindTex(ByVal start_at As Integer) targey = targeypos = InStr(start_at, Text1.Text, targey)If pos > 0 Then '找到了匹配字符串TargetPosition = posText1.SelStart = TargetPosition - 1'选中找到的字符串Text1.SelLength = Len(targey)Text1.SetFocusElse '没有找到匹配的字符串MsgBox "没找到匹配的字符串", 48, "提示"Text1.SetFocusEnd IfEnd SubPrivate Sub mnuNext_Click() '查找下一个FindTex TargetPosition + 1End SubPrivate Sub mnuopen_Click() '打开Dim inputdata As StringOn Error GoTo nofilecmndlg1.Filter = "文本文件|*.txt"cmndlg1.CancelError = Truecmndlg1.ShowOpenText1.Text = ""If cmndlg1.FileName <> "" ThenOpen cmndlg1.FileName For Input As #1Do While Not EOF(1)Line Input #1, inputdataText1.Text = Text1.Text & inputdata & vbCrLoopClose #1End IfExit Subnofile:If Err.Number = 32755 Then Exit SubEnd SubPrivate Sub FindText(ByVal start_at As Integer)'获取用户输入的要查找的字符串targey = InputBox("请输入要查找的内容", "查找")pos = InStr(start_at, Text1.Text, targey)If pos > 0 Then '找到了匹配字符串TargetPosition = posForm1.Text1.SelStart = TargetPosition - 1'选中找到的字符串Form1.Text1.SelLength = Len(targey)Form1.Text1.SetFocusElse '没有找到匹配的字符串MsgBox "没找到匹配的字符串", 48, "提示"Form1.Text1.SetFocusEnd IfEnd SubPrivate Sub mnupaste_Click() '粘贴用GetText1 方法,将剪切板中的内容粘贴到光标所在位置Text1.SelText = Clipboard.GetText()End SubPrivate Sub mnuprint_Click() '打印On Error Resume Nextcmndlg1.ShowPrinterPrinter.Copies = cmndlg1.CopiesPrinter.Print Text1.TextEnd SubPrivate Sub mnuright_Click(Index As Integer) '右对齐\居中菜单代码Select Case IndexCase 1Text1.Alignment = 1mnuleft.Checked = Falsemnuright(1).Checked = Truemnuright(2).Checked = FalseCase 2Text1.Alignment = 2mnuleft.Checked = Falsemnuright(1).Checked = Falsemnuright(2).Checked = TrueEnd SelectEnd SubPrivate Sub mnusave_Click() '保存On Error Resume Nextcmndlg1.DialogTitle = "保存文件"cmndlg1.Filter = "文本文件|*.txt"cmndlg1.CancelError = Truecmndlg1.ShowSaveOpen cmndlg1.FileName For Output As #1Print #1, Text1.TextClose #1End SubPrivate Sub mnuselectall_Click() '全选Text1.SelStart = 0Text1.SelLength = Len(Text1.Text)End SubPrivate Sub Text1_Change()If Text1.Text = "" Thenmnufind.Enabled = FalsemnuNext.Enabled = FalseElsemnufind.Enabled = Truemnuselectall.Enabled = TrueEnd IfEnd SubPrivate Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case ButtonCase "新建"Call mnunew_ClickCase "打开"Call mnuopen_ClickCase "剪切"Call mnucut_ClickCase "复制"Call mnucopy_ClickCase "粘贴"Call mnupaste_ClickCase "保存"Call mnusave_ClickCase "查找"Call mnufind_ClickEnd SelectEnd SubPrivate Sub tre_Click()Shell ("notepad 使用说明.txt")End SubPrivate Sub xufeng_Click()Form2.Visible = TrueEnd Sub五、运行结果保存功能查找功能打开功能颜色修改功能字体修改功能七、心得体会作为一名计算机专业的学生,在接触了C语言、数据结构与C++课程后,对计算机语言有了一定的兴趣,于是在这个学期我毫不犹豫的选择了VB课程(算法与程序设计)。
基于VB和XML的个人资料编辑器的实现在当今信息化时代,我们每个人都需要处理各种各样的个人信息,如姓名、地址、电话号码、电子邮件、社交媒体账号等。
不同的场景,需要我们提供不同的信息,因此,需要一个方便实用的工具来管理这些信息。
本文将介绍一个基于VB和XML的个人资料编辑器。
一、为什么选择VB和XMLVisual Basic(VB)是一种面向对象的编程语言,可用于Windows平台应用程序开发。
VB可以通过可视化开发环境方便快捷地进行开发。
而且,VB的语法易于学习,适合初学者上手。
XML(Extensible Markup Language)是一种标记语言,用于存储和传输数据。
它具有结构化、可扩展和易于处理的特点。
将个人信息存储在XML文件中,方便了数据的整理和管理,可以灵活地增加、删除和修改数据记录。
二、需求分析在设计个人资料编辑器之前,需要先分析用户的需求。
通过与用户进行交流,整理出以下功能需求:1. 能够方便地添加、删除和修改个人信息;2. 支持批量导入和导出;3. 支持搜索功能,查找特定的个人信息;4. 支持多种排序方式,如按姓名、电话号码或地址等排序;5. 能够保存用户的数据到XML文件中,方便备份和恢复;6. 界面简洁、美观,方便用户操作。
三、系统设计在满足用户需求的基础上,我们开始设计个人资料编辑器。
界面采用Windows标准界面,主要分为菜单栏、工具栏、信息列表和状态栏四大部分。
1. 菜单栏包括文件、编辑、视图、帮助四个菜单,分别用于打开、保存、导入、导出、添加、删除、修改、排序、搜索、查看帮助等功能。
2. 工具栏包括常用的添加、删除、修改、保存、导入、导出按钮,方便用户快速访问常用功能。
3. 信息列表采用表格形式展示个人信息,每行对应一条记录,列分别是姓名、地址、电话号码、电子邮件、社交媒体账号等。
4. 状态栏用于显示当前操作的状态,如“打开文件”、“保存成功”、“搜索结果为XX条记录”等。
VB-文本编辑器一、界面设计程序运行的界面:二、代码设计Dim ex As BooleanDim savepath As StringPrivate Sub building_Click()If ex Thena = MsgBox("是否保存?", vbYesNo + vbQuestion)If a = 6 ThenIf savepath <> "" ThenOpen savepath For Output As #1Print #1, Text1.TextClose #1Text1 = ""ex = FalseElseCommonDialog1.FileName = "文档1.txt"CommonDialog1.DefaultExt = "txt"CommonDialog1.Action = 2savepath = CommonDialog1.FileNameOpen CommonDialog1.FileName For Output As #1Print #1, Text1.TextClose #1Text1 = ""ex = FalseEnd IfEnd IfElseText1 = ""ex = FalseEnd IfEnd SubPrivate Sub exit_Click()If ex Thena = MsgBox("是否保存?", vbYesNoCancel + vbQuestion)If a = 6 ThenIf savepath <> "" ThenOpen savepath For Output As #1Print #1, Text1.TextClose #1EndElseCommonDialog1.FileName = "文档1.txt"CommonDialog1.DefaultExt = "txt"CommonDialog1.Action = 2savepath = CommonDialog1.FileNameOpen CommonDialog1.FileName For Output As #1Print #1, Text1.TextClose #1ex = FalseEnd IfElseIf a = 7 ThenEndEnd IfElseEndEnd IfEnd SubPrivate Sub Form_Resize()Form1.Width = 12000Form1.Height = 7000Form1.Top = 2000Form1.Left = 3000Text1.Left = 0Text1.Top = 0Text1.Width = Form1.Width - 300Text1.Height = Form1.Height - 1000End SubPrivate Sub open_Click()CommonDialog1.Action = 1Text1 = ""If CommonDialog1.FileName <> "" ThenOpen CommonDialog1.FileName For Input As #1 Do While Not EOF(1)Line Input #1, inputdataText1 = Text1 + inputdata + vbCrLfLoopClose #1savepath = CommonDialog1.FileNameex = FalseText1.SelStart = Len(Text1)End IfEnd SubPrivate Sub save_Click()If savepath <> "" ThenOpen savepath For Output As #1Print #1, Text1.TextClose #1ex = FalseElseCommonDialog1.FileName = "文档1.txt"CommonDialog1.DefaultExt = "txt"CommonDialog1.Action = 2savepath = CommonDialog1.FileNameOpen CommonDialog1.FileName For Output As #1 Print #1, Text1.TextClose #1ex = FalseEnd IfEnd SubPrivate Sub saves_Click()CommonDialog1.FileName = "文档1.txt" CommonDialog1.DefaultExt = "txt" CommonDialog1.Action = 2savepath = CommonDialog1.FileNameOpen CommonDialog1.FileName For Output As #1Print #1, Text1.TextClose #1ex = FalseEnd SubPrivate Sub Text1_Change()ex = TrueEnd Sub。
意思就是做个记事本吧看下面的用VB做一个记事本实在不很复杂,我们完全可以通过向导来很方便地做出来。
但本文只打算讨论用手动方法制作记事本,旨在向VB初学者展示:学VB原来是如此容易!通过阅读、研究本文并按本文所述进行尝试,初学者将学到很多东西,如怎样使用RichText 控件来打开和保存文件,怎样制作菜单、工具栏和状态栏以及如何对其编写代码等。
第一章让我们的记事本马上运行急于求成是初学者共有的心愿。
那好,请按如下三个步骤做,我们的愿望立即就可以实现!步骤一:绘制界面。
新建一个标准EXE工程,将其Caption属性改为“超级记事本”,点击Icon属性给它找个合适的Icon图标。
单击菜单“工程”-“部件”,在弹出的“部件”对话框里找到Microsoft RichText Box 6.0和公共对话框Microsoft Common Dialog 6.0并选中它们,单击“确定”按钮。
这时左边的工具栏上出现了我们刚才新添的两个控件了。
在窗体上绘制RichText Box和Commn Dialog,其中RichText Box的大小和位置可不用理睬,我们将在代码中处理它,当然,有必要把它的ScrollBar属性设为2-rtfVertical,这样在打开和编辑文件时垂直滚动条才可用。
步骤二:编辑菜单。
按Ctrl+E调出菜单编辑器,我们来做如下几个菜单:一.文件菜单:文件(第一层) mnuFile新建(第二层) mnuNew打开(第二层) mnuOpen保存(第二层) mnuSave- (第二层) mnuFileSep (分隔线)退出(第二层) mnuExit二.编辑菜单:编辑(第一层) mnuEdit复制(第二层) mnuCopy剪切(第二层) mnuCut粘贴(第二层) mnuPaste- (第二层) mnuEditSep (分隔线)全选(第二层) mnuSelecAll三.搜索菜单:搜索(第一层) mnuSearch查找(第二层) mnuFind查找下一个(第二层) mnuFindOn四.帮助菜单:帮助(第一层) mnuHelp使用说明(第二层) mnuUsage关于(第二层) mnuAbout(注:各菜单项的快捷键请自行设置)好了,其它的菜单项以后再根据需要添加。
VB课程设计报告——文本编辑器学院名称:学生姓名:专业名称:班级:一、课程设计题目用Visual Basic程序设计语言编写一个简易的文本编辑器要求:有最基本的文本编辑功能,包括复制、剪切、粘贴、字体设置、背景颜色设置、字体颜色设置;同时拥有文本管理功能,包括打开文件、保存文件;以及完整的系统运行退出等功能,所有的操作可选择设定的快捷键。
二、课程设计目的虽然本学期的Visual Basic课程是自学的,相对于课堂学习有些不足,但通过平时的上机实验,初步掌握了VB程序设计的各种方法,学会了编写最基本的VB程序;对于完整的VB程序设计来讲是很不足的,平时掌握的只是单独的窗体(Form)程序编写,以及各种简单控件的使用,没有做到很好连贯性,所以有必要做一次完整的VB程序设计,结合所学的基本知识,使用多个窗体自成一套系统,加上各种控件的综合运用,初步设计一个合格的VB 应用程序;这样在巩固VB所学的同时,更好地学会程序设计的一些思想和方法,对于以后的编程学习或是工作有重要的实践意义。
三、课程设计说明题目为文本编辑器,即是最基本的文本编辑程序,首先必须做好文本编辑器本身的功能,然后对其完善,做成一个完整的小程序功能设计说明:功能是这个文本编辑器的核心内容,也就是程序的作用,它是用来做什么的;本程序就是用来编写文本的,编写过程中要利用到窗体(Form)一个,控件包括:RichTextBox1(超文本框)、CommonDialog(通用对话框),以及InputBox(消息框)、菜单编辑器等,。
要做的工作就是编写代码把这些控件和窗体等结合为一体,使得程序能够成为一体,顺畅运行。
本次设计在按照题目要求的前提下,为了完整地展示一个应用程序,在最初就设计为最基本的文本的编辑器,所以取名为“易记本”,就是简易记事本的简称,然后加入图标,在程序完成之后还进行了大包操作,得到应用程序的安装文件,最后安装在电脑上运行使用。
四.源代码Private Sub Command1_Click()Dim i As IntegerIf Text2.Text <> "123456" Theni = MsgBox("密码错误", 5 + vbExclamation, "警告")If i <> 6 ThenEndElseText2.Text = ""Text2.SetFocusEnd IfEnd IfForm1.HideForm2.ShowEnd SubPrivate Sub Form_Load()Text1.Text = ""Text1.MaxLength = 6Text2.Text = ""Text2.MaxLength = 6Text2.PasswordChar = "*"End SubPrivate Sub Text1_LostFocus()If Not IsNumeric(Text1.Text) Then MsgBox "帐号必须为数字", , "警告" Text1.Text = ""Text1.SetFocusEnd IfEnd SubPrivate Sub Command1_Click()Form2.HideForm3.ShowEnd SubPrivate Sub Command2_Click()Form2.HideForm4.ShowEnd SubPrivate Sub Command3_Click()Form2.HideForm5.ShowEnd SubPrivate Sub Color_Click() CommonDialog1.Action = 3Text1.ForeColor = CommonDialog1.Color End SubPrivate Sub Command1_Click()Form3.HideForm2.ShowEnd SubPrivate Sub Copy_Click()Dim st As Stringst = Text1.SelTextEnd SubPrivate Sub Cut_Click()Dim st As Stringst = Text1.SelTextText1.SelText = ""End SubPrivate Sub Exit_Click()EndEnd SubPrivate Sub Font_Click()CommonDialog1.Flags = cdlCFBoth Or cdlCFEffects CommonDialog1.Action = 4Text1.FontName = CommonDialog1.FileNameText1.FontSize = CommonDialog1.FontSizeText1.FontBold = CommonDialog1.FontBoldText1.FontItalic = CommonDialog1.FontItalicText1.FontStrikethru = CommonDialog1.FontStrikethru Text1.FontUnderline = CommonDialog1.FontUnderline Text1.ForeColor = CommonDialog1.ColorEnd SubSub New_Click()Text1.Text = ""Me.Caption = FileEnd SubSub Open_Click()CommonDialog1.Action = 1Text1.Text = ""Open CommonDialog1.FileName For Input As #1Do While Not EOF(1)Line Input #1, inputdataText1.Text = Text1.Text + inputdata + vbCrLfLoopClose #1End SubPrivate Sub Paste_Click()Text1.SelText = stEnd SubPrivate Sub Print_Click()CommonDialog1.Action = 5For i = 1 To CommonDialog1.CopiesPrinter.Print Text1.TextNext iPrinter.EndDocEnd SubPrivate Sub SaveAs_Click()CommonDialog1.FileName = "vb课设用.txt" CommonDialog1.DefaultExt = "txt"CommonDialog1.Action = 2Open CommonDialog1.FileName For Output As #1 Print #1, Text1.TextEnd SubDim arr As Long, sum As Long, a As IntegerPrivate Sub Command1_Click()a = HScroll1.ValueText1.Text = plus(a)Call isprime(a)End SubPrivate Sub Command2_Click()EndEnd SubPrivate Sub HScroll1_Change()Label2.Caption = HScroll1.ValueEnd SubSub isprime(max As Integer)Dim x As Integer, i As Integer, j As IntegerFor i = 2 To maxx = 0For j = 2 To i - 1If i Mod j = 0 Then x = 1Next jIf x = 0 Then Label2.Caption = Label2.Caption & i & " " Next iEnd SubFunction plus(a As Integer) As LongFor i = 1 To asum = sum + iNext iplus = sumEnd FunctionDim x1 As IntegerDim y1 As IntegerDim x2 As IntegerDim y2 As IntegerDim flag As BooleanPrivate Sub Command1_Click()On Error Resume NextCommonDialog1.CancelError = True CommonDialog1.DialogTitle = "颜色" CommonDialog1.ShowColorIf Err <> 32755 Then Picture1.ForeColor = CommonDialog1.Color End IfEnd SubPrivate Sub Command2_Click()Picture1.ClsEnd SubPrivate Sub Command3_Click()Form5.HideForm6.ShowEnd SubPrivate Sub Option1_Click()Picture1.DrawWidth = 1End SubPrivate Sub Option2_Click()Picture1.DrawWidth = 2End SubPrivate Sub Option3_Click()Picture1.DrawWidth = 4End SubPrivate Sub Option4_Click()Picture1.DrawWidth = 8End SubPrivate Sub Form_Load()Picture1.Scale (0, 0)-(400, 400)flag = FalseEnd SubPrivate Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) flag = Truex1 = Xy1 = YEnd SubPrivate Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If flag = False ThenExit SubEnd IfIf flag = True Thenx2 = Xy2 = YPicture1.Line (x1, y1)-(x2, y2)x1 = x2y1 = y2End IfEnd SubPrivate Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) flag = FalseEnd SubDim ctP As Single, ctDu() As Single, ctDuS As LongPrivate Sub Command1_Click()Picture1.AutoRedraw = True: ctP = 3.1415926Timer1.Interval = 20: Timer1.Enabled = Not Timer1.EnabledEnd SubPrivate Sub Command2_Click()Form7.HideForm6.ShowEnd SubPrivate Sub Form_Load()Me.Caption = "旋转的椭圆": Command1.Caption = "转/停"Text1.Text = "9 个": Timer1.Enabled = FalseEnd SubPrivate Sub Text1_Change()ctDuS = Val(Text1.Text)If ctDuS > 200 Then Text1.Text = "200"If ctDuS < 1 Then ctDuS = 1ReDim ctDu(0 To ctDuS)End SubPrivate Sub Timer1_Timer()Dim I As LongPicture1.DrawWidth = 3Picture1.ClsFor I = 0 To ctDuSctDu(I) = ctDu(I) + ctP * 0.01 * I / 9If ctDu(I) > ctP * 2 Then ctDu(I) = ctDu(I) - ctP * 2Show1 ctDu(I), &HFFFFFF / (ctDuS + 1) * I * 0.6NextDim x As Single, y As SingleStatic J As SinglePicture1.DrawWidth = 15x0 = Picture1.ScaleWidth * 0.5: y0 = Picture1.ScaleHeight * 0.5 Picture1.PSet (x0, y0), 255x = 1200: y = 0: J = J - 0.05If J < -ctP * 2 Then J = J + ctP * 2Zhuan J, x, yPicture1.PSet (x0 + x, y0 + y), RGB(0, 0, 255)End SubPrivate Sub Show1(ToJ As Single, Se As Long)Dim I As Single, x As Single, y As Single, x0 As Single, y0 As Single Dim a As Single, b As Single, x1 As Single, y1 As SingleIf Picture1.ScaleWidth < Picture1.ScaleHeight Thena = Picture1.ScaleWidth * 0.45Elsea = Picture1.ScaleHeight * 0.45End Ifb = a * 0.25x0 = Picture1.ScaleWidth * 0.5: y0 = Picture1.ScaleHeight * 0.5x = -a: y = 0: Zhuan ToJ, x, yx1 = a: y1 = 0: Zhuan ToJ, x1, y1Picture1.Line (x0 + x, y0 + y)-(x0 + x1, y0 + y1), Sex = 0: y = -b: Zhuan ToJ, x, yx1 = 0: y1 = b: Zhuan ToJ, x1, y1Picture1.Line (x0 + x, y0 + y)-(x0 + x1, y0 + y1), SeFor I = 0 To ctP * 2 Step 0.1x = a * Sin(I): y = b * Cos(I)Zhuan ToJ, x, yPicture1.Line -(x0 + x, y0 + y), SeNextx = a * Sin(I): y = b * Cos(I)Zhuan ToJ, x, yPicture1.Line -(x0 + x, y0 + y), SeEnd SubPrivate Sub Zhuan(ToJ As Single, x As Single, y As Single) Dim S As Single, J As SingleS = Sqr(x ^ 2 + y ^ 2)If S = 0 Then J = 0 Else J = y / SIf Abs(J) >= 1 ThenIf J > 0 Then J = ctP * 0.5 Else J = -ctP * 0.5ElseJ = Atn(J / Sqr(-J * J + 1))End IfIf x < 0 Then J = -ctP - Jx = S * Cos(J + ToJ): y = S * Sin(J + ToJ) End Sub Private Sub Command1_Click()EndEnd Sub五、运行结果六.心得体会通过本次课程设计,使我对VB的认识更加深入了一层,VB主要由两部分组成,一个是Visual 可视化界面设计,另一个是Basic程序设计。
VB开发记事本的功能(文本文档 (.txt) )功能:VB开发记事本的功能(文本文档 (.txt) ),使其具有记事本的各块功能VB界面如下:图二1.电脑上必须要先Microsoft Visual Studio(也就是VB软件)2.用VB软件设置窗口如上(图二)3.各个Command对应的VB代码如下:' 初始化Private Sub Form_Load()' 设置当前路径ChDir App.PathChDrive App.Path' 设置文本框的位置txtEdit.Move 0, 0' 初始Filename变量FileName = "Untitled"FileType = 1' 设置窗体位置Top = Screen.Height / 2 - Height / 2 Left = Screen.Width / 2 - Width / 2 End Sub' 改变窗口大小Private Sub Form_Resize()' 窗体大小改变时,相应的改变文本框大小 txtEdit.Width = ScaleWidthtxtEdit.Height = ScaleHeightEnd Sub' “文件”菜单Private Sub mnuFileItem_Click(Index As Integer)On Error GoTo errhandler' 设置过滤器CMDialog1.Filter = "All Files (*.*)|*.*|Text Files (*.txt)|*.txt|RTF Files (*.rtf)|*.rtf"' 设置缺省过滤器CMDialog1.FilterIndex = 2Select Case Index' 根据菜单的索引选择相应的操作Case 0' 如果index = 0, 新建文本文件txtEdit.Text = "" '清空文本框内容FileName = "Untitled"frmEditor.Caption = "记事本: " & FileName '设置记事本标题为 "记事本: Untitled"Case 1' 如果index = 1, 打开文本文件' 显示"打开"对话框CMDialog1.ShowOpenFileName = CMDialog1.FileNameOpenFile (FileName)Case 2' 如果index = 2, 保存文件If FileName = "Untitled" Then'如果文件尚未命名,则显示保存对话框 CMDialog1.ShowSaveFileName = CMDialog1.FileNameWriteFile (FileName)Else'否则直接保存SaveFile (FileName)End IfCase 3' 如果index = 3,另存文件' 显示另存对话框CMDialog1.ShowSaveFileName = CMDialog1.FileNameWriteFile (FileName)Case 4' 无操作,分隔Case 5EndEnd Selecterrhandler:' 错误处理Exit SubEnd Sub' “文件”菜单中的历史文件列表菜单Private Sub mnuFileArray_Click(Index As Integer)' 打开选择的文件If Index >= 0 ThenOpenFile (mnuFileArray(Index).Caption) End IfEnd Sub' 设置“编辑”菜单中子菜单的状态Private Sub mnuEdit_Click()' 如果没有选中文本则使剪切和复制不可用mnuEditItem(0).Enabled = (txtEdit.SelLength > 0) mnuEditItem(1).Enabled = (txtEdit.SelLength > 0)End Sub' “编辑”菜单Private Sub mnuEditItem_Click(Index As Integer)Select Case IndexCase 0' 如果 Index = 0, 剪切选中文本Clipboard.ClearIf FileType = 0 Then ' 剪切选择的文本到Clipboard中.Clipboard.SetText txtEdit.SelRTFtxtEdit.SelRTF = "" ' 清除选中的文本ElseClipboard.SetText txtEdit.SelTexttxtEdit.SelText = "" ' 清除选中的文本End IfCase 1' 如果 Index = 1, 复制选中文本Clipboard.ClearIf FileType = 0 Then ' 复制选择的文本到Clipboard中Clipboard.SetText txtEdit.SelRTFElseClipboard.SetText txtEdit.SelTextEnd IfCase 2' 如果 Index = 2, 粘贴文本txtEdit.SelText = Clipboard.GetText() ' 粘贴文本Case 3' 菜单分隔符Case 4, 5' 如果 Index = 4 5, 查找替换frmFind.Show 0, frmEditorCase 6' 菜单分隔符Case 7' 如果 Index = 4, 全选txtEdit.SelStart = 0txtEdit.SelLength = Len(txtEdit.Text) End SelectEnd Sub' “设置”菜单Private Sub mnuSettingsItem_Click(Index As Integer) On Error GoTo errhandlerSelect Case IndexCase 0' 设置字体CMDialog1.Flags = cdlCFBothCMDialog1.ShowFont '显示“字体”对话框With txtEdit.SelFontName = CMDialog1.FontName.SelBold = CMDialog1.FontBold.SelItalic = CMDialog1.FontItalic.SelFontSize = CMDialog1.FontSize.SelUnderline = CMDialog1.FontUnderline.SelStrikeThru = CMDialog1.FontStrikethruEnd WithCase 1' 设置字体颜色CMDialog1.ShowColor '显示“颜色”对话框txtEdit.SelColor = CMDialog1.ColorEnd Selecterrhandler:' 错误处理Exit SubEnd Sub运行VB时,需要先打开SolidWorks一个新零件窗口,然后运行VB,点击界面按钮即可运行结果:完美实现对应功能。
课程设计报告课程:Visual Basic 程序设计课题:文本编辑器(易记本)专业:计算机信息管理班级:学号:姓名:@一路偏向北教师:2011-12-23一、课程设计目的通过一学期的Visual Basic 程序设计学习,以及平时的上机实验,初步掌握了VB程序设计的各种方法,学会了编写最基本的VB程序;对于完整的VB程序设计来讲是很不足的,平时掌握的只是单独的窗体(Form)程序编写,以及各种简单控件的使用,没有做到很好连贯性,所以有必要做一次完整的VB程序设计,结合所学的基本知识,使用多个窗体自成一套系统,加上各种控件的综合运用,初步设计一个合格的VB应用程序;这样在巩固VB所学的同时,更好地学会程序设计的一些思想和方法,对于以后的编程学习或是工作有重要的实践意义。
二、题目及简介文本编辑器模仿Windows自带的本文编辑器,要求:做到有下拉式菜单栏,有最基本的文本编辑功能,包括复制、剪切、粘贴、全选、查找;同时拥有文本的管理功能,其中包括新建文本、打开、保存;以及完整的运行退出等系统应用功能,所有操作可选择设定快捷键,更快更方便地使用程序,同时对于一个小程序而言,可给出基本的使用说明以及相关信息。
提示:注意使用消息框,以及使用右击弹出式菜单,注意程序的完整性可可用性。
三、设计说明题目为文本编辑器,即是最基本的文本编辑程序,首先必须做好文本编辑器本身的功能,然后对其完善,做成一个完整的小程序功能设计说明:功能是这个文本编辑器的核心内容,也就是程序的作用,它是用来做什么的;本程序就是用来编写文本的,编写过程中要利用到窗体(Form)一个,控件包括:RichTextBox1(超文本框)、CommonDialog(通用对话框),以及InputBox(消息框)、菜单编辑器等,。
要做的工作就是编写代码把这些控件和窗体等结合为一体,使得程序能够成为一体,顺畅运行。
本次设计在按照题目要求的前提下,为了完整地展示一个应用程序,在最初就设计为最基本的文本的编辑器,所以取名为“易记本”,就是简易记事本的简称,然后加入图标,在程序完成之后还进行了大包操作,得到应用程序的安装文件,最后安装在电脑上运行使用。
文本编辑器设计报告学院土木工程学院班级c106 学号107101 姓名庄潮辉成绩一、设计思路1.要达到的目的1.培养综合利用VB语言进行程序设计的能力,主要是利用VB的标准控件和文件操作进行设计。
2.掌握文件的读、写,文本框和命令按钮的使用。
2.关键问题的解决1.单击“打开文件”按钮,在TextBox控件中打开一个文本文件并显示。
方法:使用顺序文件的读操作。
2.单击“查找与替换”按钮,可以在文本中查找或替换指定的第一个内容;单击“查找下一个”按钮,可连续进行给定内容的查找与替换。
方法:使用字符串的不等长替换方法。
3.单击“保存文件”按钮,可以将编辑后的文本文件保存到指定的位置。
方法:使用顺序文件的写操作。
4.编辑框只读”按钮的功能是控制能否对文本框中的内容进行编辑。
要想结束程序,应单击“退出”按钮。
方法:用程序设置文本框的locked属性。
5. 创新中的改变字体字号可行6. 创新中滚动条控制颜色并给文字着色可行二、模块之间的调用关系,或程序流程图二、部分程序关键源代码及注释1.打开文件:sFile = InputBox("请输入要打开的文件名及扩展名:", "打开文件")If Dir(sfile) <> "" Then‘使用freefile函数得到空文件号Fileno=freefileForm1.Caption = "文本编辑器——" & sfile‘使用input函数读取顺序文件Open App.Path & "\" & sfile For Input As #filenoDo While Not EOF(fileno)Input #fileno, mystrText1.Text = Text1.Text & mystrLoopClose #fileno2.文件保存:‘使用freefile函数得到空文件号fileno = FreeFile‘使用CommonDialog控件CommonDialog1.Filter = "txt文件(*.txt)|*.txt"‘调入保存对话框CommonDialog1.Action = 2Open (CommonDialog1.FileName) For Output As #filenoPrint #fileno, Text1.TextClose #fileno3.查找与替换:Dim a As Integer, t As String, e As Stringt = Text1.Texte = ""‘找出Form2.Text1.Text在t中第一个出现位置a = InStr(1, t, Form2.Text1.Text)If a = 0 ThenMsgBox "字符串没发现", vbOKOnly, "替换提示"Else拼接第一个出现位置左边的字符串e = e & Left(t, a - 1)e = e & Form2.Text2.Text‘将字符串t变为出现位置右边的字符串t = Right(t, Len(t) - a - Len(Form2.Text1.Text) + 1)e = e & tText1.Text = eEnd If4.字体与字号设置‘在load事件中,将各列表项加入到字体组合框cobom1,字号组合框cobom2中‘设置初始字体和字号Private Sub form_load()Combo1.AddItem "宋体"Combo1.AddItem "黑体"Combo1.AddItem "楷体_GB2312"Combo1.AddItem "仿宋_GB2312"Combo2.AddItem 10Combo2.AddItem 12Combo2.AddItem 16Combo2.AddItem 20Text1.FontName = "宋体"Text1.FontSize = 20End Sub‘字体组合框cobom1的单击事件,设置字体Private Sub Combo1_click()Select Case Combo1.ListIndexCase 0Text1.FontName = "宋体"Case 1Text1.FontName = "黑体"Case 2Text1.FontName = "楷体_GB2312"Case 3Text1.FontName = "仿宋_GB2312"End SelectEnd Sub‘字号组合框cobom2的单击事件,设置字号Private Sub Combo2_click()Text1.FontSize = Combo2.TextEnd Sub‘字号组合框cobom2的keypress事件,检测回车键并设置字号Private Sub Combo2_keypress(keyascii As Integer)If keyascii = 13 ThenText1.FontSize = Combo2.TextEnd IfEnd Sub‘利用滚动条设置三种基色Private Sub VScroll1_Change()Text2.BackColor = RGB(VScroll1.Value, 0, 0)Text5.BackColor = RGB(VScroll1.Value, VScroll2.Value, VScroll3.Value) End SubPrivate Sub VScroll2_Change()Text3.BackColor = RGB(0, VScroll2.Value, 0)Text5.BackColor = RGB(VScroll1.Value, VScroll2.Value, VScroll3.Value) End SubPrivate Sub VScroll3_Change()Text4.BackColor = RGB(0, 0, VScroll3.Value)Text5.BackColor = RGB(VScroll1.Value, VScroll2.Value, VScroll3.Value) End Sub三、设计方案的完善及目前存在的问题1.设计方案要完善的地方①文本的编辑功能有限,对文件的操作方法过于局限。
vb richtextbox1的用法(原创实用版)目录1.RichTextBox1 简介2.RichTextBox1 的基本属性3.RichTextBox1 的事件4.RichTextBox1 的常用方法5.RichTextBox1 的示例代码正文一、RichTextBox1 简介RichTextBox1 是 Visual Basic 中的一个控件,它允许用户在文本框中输入和编辑多格式的文本。
通过使用 RichTextBox1,可以在 Windows 窗体应用程序或 Web 页面中创建一个功能强大的文本编辑器。
二、RichTextBox1 的基本属性1.Text:用于存储和显示文本框中的文本。
2.Font:设置或获取文本的字体、大小和样式。
3.ForeColor:设置或获取文本的颜色。
4.BackColor:设置或获取文本框的背景颜色。
5.Lines:设置或获取文本框中可见的行数。
6.MaxLength:设置或获取文本框中最大字符数。
三、RichTextBox1 的事件1.Click:鼠标左键单击文本框时触发。
2.DoubleClick:鼠标左键双击文本框时触发。
3.MouseDown:鼠标左键按下文本框时触发。
4.MouseUp:鼠标左键释放文本框时触发。
5.KeyDown:按下键盘上的某个键时触发。
6.KeyUp:释放键盘上的某个键时触发。
7.Enter:按下回车键时触发。
四、RichTextBox1 的常用方法1.Clear:清空文本框中的所有文本。
2.Paste:将剪贴板中的文本粘贴到文本框中。
3.Copy:将文本框中的文本复制到剪贴板。
4.Cut:将文本框中的文本剪切到剪贴板。
5.SelectAll:选择文本框中的所有文本。
6.Find:查找文本框中的指定文本。
7.Replace:替换文本框中的指定文本。
五、RichTextBox1 的示例代码```Visual BasicImports SystemPublic Class Form1Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.LoadRichTextBox1.Text = "Hello, World!"End SubEnd Class```以上代码创建了一个简单的 Windows 窗体应用程序,当窗体加载时,文本框中将显示“Hello, World!”。