DataGridViewで指定されたセルにフォーカスを設定する方法は? Focus(rowindex、columnindex)のような簡単な方法を期待していましたが、それほど簡単ではありません。
現在のセルを次のように設定します。
DataGridView1.CurrentCell = DataGridView1.Rows[rowindex].Cells[columnindex]
または
DataGridView1.CurrentCell = DataGridView1.Item("ColumnName", 5)
また、次の方法で編集に直接集中できます。
dataGridView1.BeginEdit(true)
Focus
プロパティをtrueに設定することにより、Cell
を特定のSelected
に設定できます。
dataGridView1.Rows[rowindex].Cells[columnindex].Selected = true;
設定するだけで複数選択を回避する
dataGridView1.MultiSelect = false;
datagridviewの問題は、最初の行を自動的に選択するため、次の方法で選択をクリアすることです。
grvPackingList.ClearSelection();
dataGridView1.Rows[rowindex].Cells[columnindex].Selected = true;
それ以外の場合は動作しません
同様の問題がありました。いくつかの列を非表示にした後、最初の行を選択しようとしました。これは実際には機能しませんでした:
datagridview1.Rows[0].Selected = true;
そこで、cell[0,0]
が、このセルが表示されていないため、機能しませんでした。今、私の最終的なソリューションは非常にうまく機能しています:
datagridview1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
datagridview1.CurrentCell = datagridview1.FirstDisplayedCell;
したがって、これにより最初の行全体が選択されます。
public void M(){
dataGridView1.CurrentCell = dataGridView1.Rows[0].Cells[0];
dataGridView1.CurrentCell.Selected = true;
dataGridView1.BeginEdit(true);
}
//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];
}
}
イベントform_load(オブジェクト送信者、EventArgs e)でこれを試してください
dataGridView1.CurrentCell = dataGridView1.Rows [dataGridView1.Rows.Count1] .Cells [0];
このコードは最後の行と最初のセルに焦点を合わせます