入力にフォーカスを当てて、フォーム内のDataGridViewに追加する各新しい行に編集イベントを発生させようとしています。DataGridViewの新しい行の最初の表示セルを選択します。
これは私がユーザーにこれを達成しようとしているコードです。
Private Sub grd_GoldAdders_RowsAdded(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowsAddedEventArgs) Handles grd_GoldAdders.RowsAdded
Dim grid As DataGridView = DirectCast(sender, DataGridView)
grid.ClearSelection()
If grid.Rows(e.RowIndex).Cells("grid_flag").FormattedValue = Constants.[New] Then
For Each cell As DataGridViewCell In grid.Rows(e.RowIndex).Cells
If Not cell.Visible Then Continue For
grid.CurrentCell = cell
grid.BeginEdit(False)
Exit For
Next
End If
End Sub
"grid_flag"は、行のカスタム状態を格納するために使用される隠しセルです。
行を追加する前に、これは我々がフォームに表示されるものです。
これは私たちが実際に新しい行を試してみて、追加したときに我々が見たものである。
お知らせ両方のこと列0,0と新しい行の最初に表示される列が選択されますが、列0,0にはフォーカスがあります。私は0,0を選択したりフォーカスを当てたりしたくない。私はまた、これは私が私の[追加]ボタンをクリックした後のものを見てみたい方法です...行インジケータがあまりにも行0で指していることを、ここで
を参照してください。
私が間違っているつもりですどこ誰もが知っていますコードは?私はこの1日を解決しようとしている日の大部分を探しました。
グリッド内の最後の行(数値的)が追加された最後の行(時間順)でない場合があるため、行がソートされても機能しません。 – Mike
@Mikeこれは本当です - 私はこのケースを処理するために私の答えを編集しました。必要なことをするための他の方法もありますが、それらを探索するには詳細を提供する必要があります。 –