C# richtextbox中有多行文本怎么获取其中一行文本

C# richtextbox中有多行文本怎么获取其中一行文本,第1张

string all = Text;

string[] lines = allSplite(new string[3]{"\r", "\n", "\r\n"});

就可以获得所有行了

RichTextBoxtextlength 内容长度

RichTextBoxtextsubstring(5,RichTextBoxtextlength-1-5) //第一个参数是5或者4,第二个可能不需要减1你自己试试就OK

在窗体上加入控件command1,RichTextBox1,然后复制下面代码,修改文件路径,运行后点击command1,即可看到结果。

Option Explicit

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const EM_GETLINECOUNT = &HBA

'获取翻页次数

Function GetHs()

Dim ctlNew As PictureBox, Hs As Long, t As Long

Set ctlNew = MeControlsAdd("VBPictureBox", "picNew", Me)

Hs = SendMessage(RichTextBox1hwnd, EM_GETLINECOUNT, 0, 0)

t = Int((RichTextBox1Height) / (ctlNewTextHeight("A") + 65))

GetHs = Hs \ t + 1

ControlsRemove ctlNew

End Function

Private Sub Command1_Click()

MsgBox "使用Pagedown翻页,需要" & GetHs & "次才能到文章结尾。"

End Sub

Private Sub Form_Load()

RichTextBox1FileName = "c:\1txt" '请修改

End Sub

首先要说明下:本人看到这个问题感到十分激动,因为好久没见到这么奇奇怪怪的问题了。

首先要在初始化时设置: thisrichTextBox1WordWrap = false;

/// <summary>

/// GetRowCount

/// </summary>

/// <param name="text">thisrichtextboxtext</param>

/// <param name="isRemoveEmptyEntries">isRemoveEmptyEntries</param>

/// <returns></returns>

public int GetRowCount(string text, bool isRemoveEmptyEntries)

{

if (text == null) {

return 0;

}

else if (text == ""){

return isRemoveEmptyEntries 0 : 1;

}

else {

return textSplit(new string[] { "\n" }, isRemoveEmptyEntries

StringSplitOptionsRemoveEmptyEntries

: StringSplitOptionsNone)Length;

}

}

定义个string str="";

读取数据库数据并放到string里,string sjksj1="数据库数据"

str="当您经营累计的利润留存为正数时,系统将按国家规定计算当年税前利润(为正数时)的"+sjksj1+"%作为所得税,税金在下一年执行“支付税金项”时,系统自动扣除。";

richTextBoxText=str;//搞定

在RTF中汉字是以两个十六进制的字节形式表示的,比如“学生”两字就表示为

\'d1\'a7\'c9\'fa,其中十六进制的d1a7转换为10进制整型变量值为-11865,也就是“学”字的ascii码。因此要查询“学生”这两个字,需要先将“学生”一词字转换成\'d1\'a7\'c9\'fa这样的形式,给你个函数吧

Function StringToHex(sStr As String) As String

Dim sTemp As String

Dim sChar As String 1

For i = 1 To Len(sStr)

sChar = Mid(sStr, i, 1) '依次取出原始字符串中每个字符

If Asc(sChar) < 128 And Asc(sChar) > 0 Then '如果是英文字母,数字或半角符号,不进行任何 *** 作

sTemp = sTemp & sChar

Else '如果是其他字符,则转换为\'十六进制的形式

sTemp = sTemp & "\'" & Left(Hex(Asc(sChar)), 2) & "\'" & Right(Hex(Asc(sChar)), 2)

End If

Next

StringToHex = sTemp

End Function

另外,如果richtextbox中“学生”两个字在一起,但两个字的格式(字体、颜色)等,那么在RTF中这两个字就不在一起了,解决的办法可能只有在数据库中另行建立一个字段,用来保存纯文本的内容,查询时根据此字段来判断

以上就是关于C# richtextbox中有多行文本怎么获取其中一行文本全部的内容,包括:C# richtextbox中有多行文本怎么获取其中一行文本、wpf中的RichTextBox 怎么获取内容长度,怎么截掉内容中的前5个字符、vb中怎样计算或获取richtextbox的文章页数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9337810.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存