web-dev-qa-db-ja.com

DataGridView-特定のセルにフォーカスします

DataGridViewで指定されたセルにフォーカスを設定する方法は? Focus(rowindex、columnindex)のような簡単な方法を期待していましたが、それほど簡単ではありません。

39
SMUsamaShah

現在のセルを次のように設定します。

DataGridView1.CurrentCell = DataGridView1.Rows[rowindex].Cells[columnindex]

または

DataGridView1.CurrentCell = DataGridView1.Item("ColumnName", 5)

また、次の方法で編集に直接集中できます。

dataGridView1.BeginEdit(true)
78
CloudyMarble

Focusプロパティをtrueに設定することにより、Cellを特定のSelectedに設定できます。

dataGridView1.Rows[rowindex].Cells[columnindex].Selected = true;

設定するだけで複数選択を回避する

dataGridView1.MultiSelect = false;
10
Binil

datagridviewの問題は、最初の行を自動的に選択するため、次の方法で選択をクリアすることです。

grvPackingList.ClearSelection();
dataGridView1.Rows[rowindex].Cells[columnindex].Selected = true;  

それ以外の場合は動作しません

7
Nighil

同様の問題がありました。いくつかの列を非表示にした後、最初の行を選択しようとしました。これは実際には機能しませんでした:

datagridview1.Rows[0].Selected = true;

そこで、cell[0,0]が、このセルが表示されていないため、機能しませんでした。今、私の最終的なソリューションは非常にうまく機能しています:

datagridview1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;    
datagridview1.CurrentCell = datagridview1.FirstDisplayedCell;

したがって、これにより最初の行全体が選択されます。

3
Jules
public void M(){ 
  dataGridView1.CurrentCell = dataGridView1.Rows[0].Cells[0];
  dataGridView1.CurrentCell.Selected = true; 
  dataGridView1.BeginEdit(true);
}
1
Ahmed Mohamed
            //For me it's the best way to look for the value of a spezific column
            int seekValue = 5;
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                var columnValue = Convert.ToInt32(row.Cells["ColumnName"].Value);
                if (columnValue == seekValue)
                {
                    dataGridView1.CurrentCell = row.Cells[0];
                }
            }
0
Ingo Barrenpohl

イベントform_load(オブジェクト送信者、EventArgs e)でこれを試してください

dataGridView1.CurrentCell = dataGridView1.Rows [dataGridView1.Rows.Count1] .Cells [0];

このコードは最後の行と最初のセルに焦点を合わせます