VB.NET*DataGridView1 指標(20點)

請問VB.NET的DataGridView1指標該如何移動

也就是那個黑色三角形

我想移動上下跟特定比數

請問移動到上一筆怎麼寫

請問移動到下一筆怎麼寫

另外,如果我查詢到資料我該如何將黑色三角形顯示在該筆資料上

以上使用 VB.NET 2010

已更新項目:

小弟不才 請教

'DataGridView允許新增時-2 不能新增時 -1

的意思是???

2 個已更新項目:

感謝下面兩位熱心幫忙,現在卡再查詢後指標移動:

例如我現在有個姓名的資料表內有4筆資料

小王

小白

小黑

小林

我想設計出一個可以查詢名字的功能

例如我查詢"小白"之後黑色三角形會指到小白這邊,然後MSGBOX出資料比數為:2

以上問題該如何寫出呢??

3 個已更新項目:

DEAR 李察不落革

非常感謝

我試試看

點數稍後奉上

4 個已更新項目:

DEAR 李察不落革:

剛剛試了一下

MessageBox.Show(i + 1)

資料若查不到的話 也會顯示筆數 => 總列數+1

這有辦法解決嗎 查不到顯示0 或者是其他訊息?

2 個解答

評分
  • 1 0 年前
    最佳解答

    '移動到特定筆數

    DataGridView1.BindingContext(DataGridView1.DataSource).Position = 10

    表示移到第11筆

    '下一筆

    DataGridView1.BindingContext(DataGridView1.DataSource).Position += 1

    '上一筆

    DataGridView1.BindingContext(DataGridView1.DataSource).Position += 1

    '尋找某筆資料

    'DataGridView允許新增時-2 不能新增時 -1

    For i As Integer = 0 To DataGridView1.RowCount - 2

    If TextBox4.Text = DataGridView1.Item(0, i).Value.ToString Then

    DataGridView1.BindingContext(DataGridView1.DataSource).Position = i

    DataGridView1.SelectionMode = DataGridViewSelectionMode.CellSelect

    DataGridView1.Item(0, i).Selected = True

    Exit For

    End If

    Next

    2010-09-13 16:42:31 補充:

    '上一筆

    DataGridView1.BindingContext(DataGridView1.DataSource).Position -= 1

    '才對@@

    要注意數字範圍

    DataGridView1.BindingContext(DataGridView1.DataSource).Position.MinValue

    DataGridView1.BindingContext(DataGridView1.DataSource).Position.MaxValue

    之間

    2010-09-13 20:09:39 補充:

    DataGridView允許新增資料時

    會在最後面多一列空白列

    實際資料筆數的上限是

    DataGridView1.RowCount - 2

    不能新增資料時就沒有這一空白列

    所以實際資料筆數的上限是

    DataGridView1.RowCount - 1

    2010-09-13 20:27:47 補充:

    在'尋找某筆資料 這一段裡就可以辦到了啊

    這裡是假設你要尋找的字串放在TextBox4裡

    用迴圈又上而下比對第一欄(從0開始)資料

    找到的話

    DataGridView1.BindingContext(DataGridView1.DataSource).Position = i

    就會把紀錄指標移到該欄的紀錄位置

    要秀出來就加上這一行

    MessageBox.Show(i + 1)

    2010-09-14 08:57:21 補充:

    你大概是放錯位置了吧

    DataGridView1.Item(0, i).Selected = True

    MessageBox.Show(i + 1) '放這裡吧@@

    Exit For

  • 1 0 年前

    Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick

    Dim selectedRowCount As Integer = _

    DataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected)

    'http://www.blueshop.com.tw/board/show.asp?subcde=B...

    If selectedRowCount > 0 Then

    Dim sb As New System.Text.StringBuilder()

    Dim i, x, y As Integer

    For i = 0 To selectedRowCount - 1

    sb.Append("Row: ") '新增回應文字

    y = DataGridView1.SelectedRows(i).Index.ToString '取得現在的指標

    sb.Append(DataGridView1.SelectedRows(i).Index.ToString) '回應現在的索引資料列

    sb.Append(Environment.NewLine) '跳行

    '取得資料

    For x = 0 To DataGridView1.Columns.Count - 1

    sb.Append(Trim(DataGridView1.Item(x, DataGridView1.SelectedRows(i).Index).Value) & " ")

    Next

    sb.Append(Environment.NewLine) '跳行

    Next

    '回應訊息

    sb.Append("Total: " + selectedRowCount.ToString())

    MessageBox.Show(sb.ToString(), "Selected Rows")

    '移動DATAGRIDVIEW指標

    'DataGridView1.CurrentCell = DataGridView1.Rows( 這裡輸入你要的特定筆數 ).Cells(0)

    DataGridView1.CurrentCell = DataGridView1.Rows(y + 1).Cells(0)

    End If

    End Sub

還有問題?馬上發問,尋求解答。