标题:求教一个用vb操作文本文件小问题
只看楼主
btt6
Rank: 2
等 级:论坛游民
帖 子:46
专家分:10
注 册:2016-8-13
结帖率:47.83%
已结贴  问题点数:2 回复次数:5 
求教一个用vb操作文本文件小问题
如现在有个打开的文本文件“c:\a.txt”,能否用vb来实现选中这个文件的第二行,就像按住鼠标左键拖动的效果,不需要读取具体的内容,用vb应该如何实现呢
搜索更多相关主题的帖子: 文本文件 如何 
2016-10-17 14:37
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:934
专家分:5244
注 册:2015-8-10
得分:0 
如果是用系统默认的记事本或者写字板,这个应该是无法实现的。
如果VB自己的界面,使用Textbox。Richtext是可以的。
比如textbox,使用的是下面这两句来控制的
Text1.SelStart = 0
Text1.SelLength = n
2016-10-17 15:35
btt6
Rank: 2
等 级:论坛游民
帖 子:46
专家分:10
注 册:2016-8-13
得分:0 
如果是vb里的textbox控件里的话,要把第二行选中应该怎么写呢
2016-10-17 16:31
Panda2016
Rank: 2
等 级:论坛游民
威 望:2
帖 子:10
专家分:33
注 册:2016-6-26
得分:1 
回复 楼主 btt6
这个VB自身功能无法实现,要借用API函数了,如果你没学API,不能看懂代码也没关系,需要替换的地方,我都简单标注了一下。

2016-10-17 16:42
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:934
专家分:5244
注 册:2015-8-10
得分:1 
回复 3楼 btt6
你说的行不清楚是怎么定义的。如果是后面接了一个换行符,也就是相当于段落了。下面的代码可以实现。我的是第一行,你自己改改。
但如果是自动换行的之后的行,比如“123456……789” 中789因为宽度自动换行变成了第二行。这个第二行不好提,因为跟Textbox宽度,font等有关。
程序代码:
Private Sub CommandButton2_Click()

 TextBox1.SetFocus   '必须获取焦点,否则没有反色显示的效果
 i = InStr(TextBox1.Text, vbCrLf) '获取第一个换行符
 j = InStr(i + 1, TextBox1.Text, vbCrLf) '获取第二个换行符
 TextBox1.SelStart = i

 TextBox1.SelLength = j - i - 1
End Sub
2016-10-18 09:22
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:934
专家分:5244
注 册:2015-8-10
得分:0 
回复 4楼 Panda2016
赞。这个API不错。
不过对于新人API,太难了。我现在都是能不用就不用。所以我的API还是很菜。
2016-10-18 09:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-469897-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.150518 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved