TextBoxでは、を使用できますtextBox1.SelectionStart = 4
。DataGridViewでこれを行うにはどうすればよいですか?
明確にするために編集:特定のセルがすでに選択されており、編集モードになっているとします。右矢印キーを押すと、そのセルにあるテキストの1つ上の位置にキャレットが移動します。同じことをするボタンを作りたいです。
TextBoxでは、を使用できますtextBox1.SelectionStart = 4
。DataGridViewでこれを行うにはどうすればよいですか?
明確にするために編集:特定のセルがすでに選択されており、編集モードになっているとします。右矢印キーを押すと、そのセルにあるテキストの1つ上の位置にキャレットが移動します。同じことをするボタンを作りたいです。
おそらく少し明確にする必要があります。DataGridViewで選択した行を変更することを意味しますか、それとも、ケアレットを移動するDataGridViewにテキストボックスがありますか?
選択した行を変更する場合は、SelectedIndexプロパティを試してください。
private void RadGridView1_SelectionChanged(object sender, Telerik.Windows.Controls.SelectionChangeEventArgs e)
{
RadGridView1.CurrentItem = RadGridView1.SelectedItem;
}
DataGridViewのEditingControlShowingイベントを介してTextBoxを取得する必要があります。
これをメンバー変数として保存し、必要に応じて、textBoxメンバーにアクセスし、上記のようにSelectionStartを設定します。
何かのようなもの;
dataGrid.EditingControlShowing += this.dataGrid_EditingControlShowing;
と
void dataGrid_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if(this.dataGrid.CurrentCell != null && e.Control is TextBox)
{
this.currentTextBox = (TextBox)e.Control;
}
}
ユーザーがボタンをクリックするたびに、DataGridViewのセルはフォーカスを失うため、編集ボックスが削除され、値が検証され、フォーマットされた値がセルに配置されます。
ボタンでカレットを動かす理由は何ですか?