C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: DataGridViewの文字選択について


(過去ログ 157 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■91039 / inTopicNo.1)  DataGridViewの文字選択について
  
□投稿者/ 東 (1回)-(2019/05/20(Mon) 19:00:22)

分類:[VB.NET/VB2005 以降] 

DataGridViewでセルの編集状態になった際に文字が全選択されますが、
その状態で左キーを押すと入力位置をセル内の一番左側に移動させるようなことはできますか?
そもそもDataGridViewのセル編集状態で入力位置を変えることってできますでしょうか?
引用返信 編集キー/
■91040 / inTopicNo.2)  Re[1]: DataGridViewの文字選択について
□投稿者/ Hongliang (807回)-(2019/05/21(Tue) 09:23:15)
https://dobon.net/vb/dotnet/datagridview/textboxevent.html
こういうので。
カーソルキーならKeyPressよりもKeyDownのほうがいいでしょう。

イベントハンドラ内では、senderをDataGridViewTextBoxEditingControlにキャストできます。
カレット位置はこれのSelectionStartプロパティで設定できます。
SelectionLengthプロパティも同時に設定することになるでしょう。
引用返信 編集キー/
■91041 / inTopicNo.3)  Re[1]: DataGridViewの文字選択について
□投稿者/ 魔界の仮面弁士 (2178回)-(2019/05/21(Tue) 09:27:27)
2019/05/21(Tue) 09:58:23 編集(投稿者)

#Hongliang さんと被ってた。

No91039 (東 さん) に返信
> DataGridViewでセルの編集状態になった際に文字が全選択されますが、

ドロップダウンや画像タイプのセルではなく、
テキストボックスタイプのセルですね。

BeginEdit(False) で編集を開始すれば全選択されませんが、
通常は全選択されるようですね。


> その状態で左キーを押すと入力位置をセル内の一番左側に移動させるようなことはできますか?
Private WithEvents editBox As DataGridViewTextBoxEditingControl
Private Sub DataGridView1_EditingControlShowing(sender As Object, e As DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing
  editBox = TryCast(e.Control, DataGridViewTextBoxEditingControl)
End Sub
Private Sub editBox_KeyDown(sender As Object, e As KeyEventArgs) Handles editBox.KeyDown
  If editBox.SelectionLength = editBox.TextLength Then
    If e.KeyCode = Keys.Left AndAlso editBox.SelectionStart = 0 Then
      editBox.Select(0, 0)
    End If
  End If
End Sub
引用返信 編集キー/
■91053 / inTopicNo.4)  Re[2]: DataGridViewの文字選択について
□投稿者/ 東 (2回)-(2019/05/22(Wed) 09:50:35)
御二方ありがとうございます!無事に動作できました!
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -