重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
请把问题叙述清楚?
成都创新互联于2013年开始,先为仲巴等服务建站,仲巴等地企业,进行企业商务咨询服务。为仲巴企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
Dim H As Integer
H = DataGridView1.Rows.Count - (3 + 1) '求得最后第3行的行号
Dim LinStr As String = "" '存放数据的字符串变量
Dim MyH As Integer
Dim MyL As Integer
MyH = H
Do While MyH = DataGridView1.Rows.Count - 1
For MyL = 0 To 2 '每行数据为3列
LinStr = LinStr DataGridView1.Item(MyL, MyH).Value " "
Next
LinStr = LinStr vbCrLf '换行
MyH = MyH + 1
Loop
TextBox1.Text = LinStr
代码已经在VB 2010里通过运行。
求行:
RichTextBox1.GetLineFromChar(RichTextBox1.SelStart)+1
这个代码呢,我的理解呢,是获取在selstart的地方的行数。一般来讲selstart的地方都是光标的地方,然后会给你返回line。不过返回的时候要自己加1。不是很懂这个语法,有懂得可以教我一下
以上是求行数。
求列:
For i = 0 To RichTextBox1.SelStart
If RichTextBox1.GetLineFromChar(RichTextBox1.SelStart) - RichTextBox1.GetLineFromChar(RichTextBox1.SelStart - i) 0 Then Exit For
j = j + 1
Next i
这个for循环呢,讲的是检查这一行光标前有多少个列,然后用J输出列的个数。
因为VB6.0没有RichTextBox1.GetFirstCharIndexOfCurrentLine这种语法。所以就得自己模拟这个过程。
具体怎么检查的呢,首先将 i 从0循环到光标处,
如果 【光标字符数】处的行数 减去 【光标字符数减去 i 个字符数】处的行数小于0了,我写了个不为零。但此时写小于零就可以。那么代表着换行了,同时也代表着光标到上一行之间有多少字。用j存储循环次数,得出对应列数。(我们中文习惯是叫第一列,但程序实际上是第零列,但在循环的时候就注意到并解决这个问题了)
如果你替换写法,例如
If RichTextBox1.GetLineFromChar(RichTextBox1.SelStart) - RichTextBox1.GetLineFromChar(RichTextBox1.SelStart + i) 0 Then Exit For
j = j + 1
Next i
这个 J 就对应着光标到该行结尾有几个字符了,如果有需要可以使用,但一般不需要。
那么就像上面说的那样,行列都求出来了,最后用事件和TEXT或者caption表现出来就好了
至于说总行数
RichTextBox1.GetLineFromChar(Len(RichTextBox1.Text)) + 1
通过对最后一个字符的位置(总长度)的行来判断呗,不过也得加一。
通过向文本框传递EM_LINEFROMCHAR消息可以得到光标所在的行号:
contst
EM_LINEFROMCHAR
=
0xC9
Dim
I
as
Long
I
=
SendMessage(textBox1.Hwnd,
EM_LINEFROMCHAR,
-1,
0)
不可以的,但是出现错误的时候不是已经告诉你在多少行了吗?你把行号显示出来就可以了。
显示行号的方法:工具选项文本编辑器basic编辑器
这项下有个行号,你打钩就好了。
这样一来报错的时候,提示在多少行,你就到多少行去看。如果你没有用try的话,错误在哪里,ide会在错误的位置给你标示出来。
在另外的事件中处理一下就可以了,比如,在窗体form1加载完成以后让listbox1显示最后一行,这样做:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ListBox1.SelectedItem = ListBox1.Items(4)
End Sub
注:listbox 中一共有5个item,4 是最后一个的索引。
哦,那就改为在button_click事件中进行处理。
ListBox1.SelectedItem = ListBox1.Items(ListBox1.Items.Count - 1),这样更好!