如何使指定的文本框中的文字高亮显示?在先等~~~

richard_ma 2005-11-28 06:13:23
我练习写了一个记事本程序,涉及到查找,我用的是instr()函数,要将查找到的结果以高亮显示,请大虾指教
...全文
437 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
richard_ma 2005-12-05
  • 打赏
  • 举报
回复
首先要谢谢二位帮我
我后来自己查书找到了这几个方法,书上没详细说明,我用的就是这种方法
再次表示感谢
vbman2003 2005-11-28
  • 打赏
  • 举报
回复
Dim s
Dim n
s = InputBox("String", "Find")
n = InStr(1, Text1.Text, s)
Text1.SetFocus
Text1.SelStart = n
Text1.SelLength = Len(s)
faysky2 2005-11-28
  • 打赏
  • 举报
回复
参考:
用 RichTextBox 做 vb 语法高亮处理:

Private Const vbKeyWords As String = "And,Call,Case,Const,Dim,Do,Each,Else,ElseIf,Empty,End,Eqv,Erase,Error,Exit,Explicit,False,For,Function,Imp," _
& "In,Is,Loop,Mod,Next,Not,Nothing,Null,On,Option,Or,Private,Property,Public,Randomize,ReDim,Resume,Select,Set,Step," _
& "Sub,Then,To,True,Until,Wend,While,With,Xor,Anchor,Array,Asc,Atn,CBool,CByte,CCur,CDate,CDbl,Chr,CInt," _
& "CLng,Cos,CreateObject,CSng,CStr,DateAdd,DateDiff,DatePart,DateSerial,DateValue,Day,Dictionary,Document,Element,Err,Exp,FileSystemObject,Filter,Fix,Form," _
& "FormatCurrency,FormatDateTime,FormatNumber,FormatPercent,GetObject,Hex,History,Hour,IIf,InputBox,InStr,InstrRev,IsArray,IsDate,IsEmpty,IsNull,IsNumeric,IsObject,Join,LBound," _
& "LCase,Left,Len,Link,LoadPicture,Location,Log,LTrim,RTrim,Mid,Minute,Month,MonthName,MsgBox,Navigator,Now,Oct,Replace,Right,Rnd," _
& "Round,ScriptEngine,ScriptEngineBuildVersion,ScriptEngineMajorVersion,ScriptEngineMinorVersion,Second,Sgn,Sin,Space,Split," _
& "Sqr,StrComp,String,StrReverse,Tan,TextStream,TimeSerial,TimeValue,TypeName,UBound,UCase,VarType,Weekday,WeekDayName,Window,Year,Let,New,Static,Module," _
& "Variant,IsError,IsMissing,Me,Deftype,Like,Clear,Raise,CVErr,Collection,Remove,Item,DDB,SLN,SYD,FV,Rate,IRR,MIRR,NPer," _
& "IPmt,PPmt,NPV,GoSub,GoTo,Return,DoEvents,Stop,Choose,Switch,Get,ChDir,ChDrive,FileCopy,MkDir,RmDir,CurDir,FileDateTime,GetAttr,FileLen," _
& "SetAttr,Timer,Open,Close,Reset,Format,Print,PrintSpc,Tab,Width,EOF,FileAttr,FreeFile,Loc,LOF,Seek,Kill,Lock,Unlock,Input," _
& "InputLine,PrintPut,Write,CDec,CVar,Boolean,Double,Integer,Long,Single,Abs,Base,AppActivate,Shell,SendKeys,Beep,Environ,Command,MacID,MacScript," _
& "QBColor,RGB,DeleteSetting,GetSetting,GetAllSettings,SaveSetting,Val,StrConv,LSet,RSet,Compare,Enum,Declare,Alias,Lib,AddressOf,VarPtr,Any,Load,LoadResData," _
& "LoadResPicture,LoadResString,Access,Append,Binary,Output,Random,Read,Shared,As,If,ByRef,ByVal,Optional,Enum,Type"

-----------------------------------------------------------------------------------------
'(接上)

Private Const KeyWordColor As Long = &H800000 '关键字颜色
Private Const NotesColor As Long = &H8000& '注释颜色

Sub vbCodeSTX(ByRef RTF1 As RichTextBox)

Dim vks() As String
Dim i As Long, l As Long
Dim mloc As Long, mloc2 As Long
Dim oloc As Long, olen As Long

l = LenB(RTF1.Text)
If l = 0 Then Exit Sub

oloc = RTF1.SelStart
olen = RTF1.SelLength
RTF1.Visible = False

'处理vb关键字
vks = Split(vbKeyWords, ",")
For i = 0 To UBound(vks)
mloc = RTF1.Find(vks(i), 0, , rtfWholeWord)
Do While mloc >= 0
With RTF1
.SelStart = mloc
.SelLength = Len(vks(i))
.SelColor = KeyWordColor
.SelStart = mloc + Len(vks(i)) + 1
End With
mloc = RTF1.Find(vks(i), , l, rtfWholeWord)
Loop
Next

'处理注释
mloc = RTF1.Find("'", 0)
Do While mloc >= 0
RTF1.SelStart = mloc + 1
mloc2 = RTF1.Find(vbCrLf, , l)
If mloc2 > mloc Then
With RTF1
.SelStart = mloc
.SelLength = mloc2 - mloc
If InStr(RTF1.SelText, Chr(34)) = 0 Then
.SelColor = NotesColor '是注释行
End If
.SelStart = mloc2 + 1
End With
End If
mloc = RTF1.Find("'", , l)
Loop

RTF1.SelStart = oloc
RTF1.SelLength = olen
RTF1.Visible = True

End Sub

(用法):
在窗体上放一个 RichTextBox1,然后调用:
vbCodeSTX RichTextBox1
PowerBI系列之基础和可视化技能专题基础概念PowerBI是什么PowerBI优秀作品展示PowerBI组件简介 PowerBI Desktop的下载安装PowerBI Desktop界面介绍和5分钟入门 PowerBI账号区别PowerBI对象和结构PowerBI和Tableau等其他主流BI产品的介绍 PowerBI官方文档基本操作文件和报表设置选项介绍页面属性设置-大小、背景、壁纸、对齐、筛选器窗格格式页面视图-适应页面、宽度、实际大小视觉对象格式属性面板快速调整页面布局和样式 (文本笔记)视觉对象分组、显示或隐藏 使用数据对象表和数据点表   向报表添加文本框和形状可视化技能使用编辑交互功能来控制图表联动多层联动控制使用Control Click切片器的使用同步切片器折叠切片器给切片器设定默认值给切片器设定动态默认值(DAX函数-默认当前月或天)使切片器默认代表无任何选择切片器仅显示有对应数据的选项使切片器反向筛选和计算切片器之间取数据并集关系多端的切片器筛选一端的切片器参数的创建和参数切片器的使用筛选器书签和选择窗格下拉式多级菜单页面导航菜单报表主页设计和重置切片器普通和自定义以及视觉对象标头工具提示按列排序和自定义排序分组装箱普通钻取和层次钻取及跨页钻取保留所有筛选器和设置钻取按钮跨报表钻取Matrix 矩阵详解矩阵为每个列快速设置相同列宽矩阵动态显示列的两种方法使用Web超链接和图片超链接文本框设置超链接或邮件地址手机端页面布局创建参数和使用报表模块(输入或值列表)利用报表模板和参数控制线下报表数据权限利用参数实现数据手工加密和权限控制利用页面导航控制页面级权限报表主题控制和主题模板生成器PBIX和PBIT文件结构解析:提取图片和主题,提取已下架的自定义图表,报表元数据等 PBIDS预定义数据连接文件DAX函数使可视化强大 DAX函数实现特殊符号的使用 DAX函数实现切片器默认当前月或天 DAX函数使切片器默认代表无任何选择 DAX函数使切片器仅显示有数据的选项 DAX函数使切片器反向筛选和计算 DAX函数使切片器之间取并集 DAX函数使关系多端的切片器筛选一端的切片器DAX函数实现年月共同决定数据排序DAX函数实现动态图表标题DAX函数实现动态图表配色和图标DAX函数实现动态纵坐标DAX函数实现动态横坐标  

7,765

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧