非常簡(jiǎn)單
個(gè)舊網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)從2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
一:如果知道要選中的行號(hào)
datagridview1.Rows(行號(hào)).Selected
=
True
datagridview1.FirstDisplayedScrollingRowIndex
=
行號(hào)
第一行是選中行號(hào)所在的行,第二行是移動(dòng)滾動(dòng)條將選中的行在顯示區(qū)域的最上放顯示出來(lái)。
二:根據(jù)內(nèi)容選中行并顯示
For
i
=
To
datagridview1.Rows.Count
-
1
If
datagridview1.Rows(i).Cells("列的名稱").Value
=
要選中行列的值
Then
datagridview1.Rows(i).Selected
=
True
datagridview1.FirstDisplayedScrollingRowIndex
=
i
End
If
Next
而且,如果你不想選中的行顯示到最上面,可以這樣:
For
i
=
To
datagridview1.Rows.Count
-
1
If
datagridview1.Rows(i).Cells("列的名稱").Value
=
要選中行列的值
Then
datagridview1.Rows(i).Selected
=
True
Dim
indeI
As
Integer
=
i
-
15
If
indeI
1
Then
indeI
=
1
datagridview1.FirstDisplayedScrollingRowIndex
=
indeI
End
If
Next
上面的代碼是根據(jù)某列的值選中行,并且移動(dòng)滾動(dòng)條將選中的行在顯示區(qū)域的第15行顯示。
求行:
RichTextBox1.GetLineFromChar(RichTextBox1.SelStart)+1
這個(gè)代碼呢,我的理解呢,是獲取在selstart的地方的行數(shù)。一般來(lái)講selstart的地方都是光標(biāo)的地方,然后會(huì)給你返回line。不過(guò)返回的時(shí)候要自己加1。不是很懂這個(gè)語(yǔ)法,有懂得可以教我一下
以上是求行數(shù)。
求列:
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
這個(gè)for循環(huán)呢,講的是檢查這一行光標(biāo)前有多少個(gè)列,然后用J輸出列的個(gè)數(shù)。
因?yàn)閂B6.0沒有RichTextBox1.GetFirstCharIndexOfCurrentLine這種語(yǔ)法。所以就得自己模擬這個(gè)過(guò)程。
具體怎么檢查的呢,首先將 i 從0循環(huán)到光標(biāo)處,
如果 【光標(biāo)字符數(shù)】處的行數(shù) 減去 【光標(biāo)字符數(shù)減去 i 個(gè)字符數(shù)】處的行數(shù)小于0了,我寫了個(gè)不為零。但此時(shí)寫小于零就可以。那么代表著換行了,同時(shí)也代表著光標(biāo)到上一行之間有多少字。用j存儲(chǔ)循環(huán)次數(shù),得出對(duì)應(yīng)列數(shù)。(我們中文習(xí)慣是叫第一列,但程序?qū)嶋H上是第零列,但在循環(huán)的時(shí)候就注意到并解決這個(gè)問(wèn)題了)
如果你替換寫法,例如
If RichTextBox1.GetLineFromChar(RichTextBox1.SelStart) - RichTextBox1.GetLineFromChar(RichTextBox1.SelStart + i) 0 Then Exit For
j = j + 1
Next i
這個(gè) J 就對(duì)應(yīng)著光標(biāo)到該行結(jié)尾有幾個(gè)字符了,如果有需要可以使用,但一般不需要。
那么就像上面說(shuō)的那樣,行列都求出來(lái)了,最后用事件和TEXT或者caption表現(xiàn)出來(lái)就好了
至于說(shuō)總行數(shù)
RichTextBox1.GetLineFromChar(Len(RichTextBox1.Text)) + 1
通過(guò)對(duì)最后一個(gè)字符的位置(總長(zhǎng)度)的行來(lái)判斷唄,不過(guò)也得加一。
通過(guò)向文本框傳遞EM_LINEFROMCHAR消息可以得到光標(biāo)所在的行號(hào):
contst
EM_LINEFROMCHAR
=
0xC9
Dim
I
as
Long
I
=
SendMessage(textBox1.Hwnd,
EM_LINEFROMCHAR,
-1,
0)