tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^3: DataGridViewにカーソルを位置づけたい
投稿日: 2008/08/22(Fri) 11:06
投稿者魔界の仮面弁士
> そこでテキストボックスに"002"と入れられたらDataGridView上の"002"の行に
> カーソルを位置づけたいということです。

これで良いのかな。


Public Class Form1
 Private table1 As DataTable = CreateSample()

 Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
  DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
  DataGridView1.MultiSelect = False
  DataGridView1.DataSource = table1
  TextBox1.ImeMode = System.Windows.Forms.ImeMode.Disable
  ActiveControl = TextBox1
 End Sub

 'Private Sub TextBox1_Validated(ByVal sender As Object, ByVal e As EventArgs) Handles TextBox1.Validated
 Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As EventArgs) Handles TextBox1.TextChanged
  Dim findRow As DataRow = table1.Rows.Find(TextBox1.Text)
  If findRow Is Nothing Then
   '該当データなし: 選択解除
   DataGridView1.ClearSelection()
   '該当データなし: 新規行に移動
   'DataGridView1.CurrentCell = DataGridView1(0, DataGridView1.NewRowIndex)
   Return
  End If

  For Each dgvRow As DataGridViewRow In DataGridView1.Rows
   Dim row As DataRow = DirectCast(dgvRow.DataBoundItem, DataRowView).Row
   If row Is findRow Then
    dgvRow.Selected = True
    Return
   End If
  Next
 End Sub

 Friend Shared Function CreateSample() As DataTable
  Dim tbl As New DataTable("Table1")
  tbl.Columns.Add("社員コード")
  tbl.Columns.Add("社員氏名")
  tbl.Columns.Add("社員カナ")
  tbl.PrimaryKey = New DataColumn() {tbl.Columns("社員コード")}
  tbl.Rows.Add("001", "一郎", "イチロウ")
  tbl.Rows.Add("002", "二郎", "ジロウ")
  tbl.Rows.Add("003", "三郎", "サブロウ")
  tbl.AcceptChanges()
  Return tbl
 End Function
End Class

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。