
[環境]
Windows7 Professional
Visual Studio 2010 Professional
お世話になります。
上記環境下にて、DataGridViewを用いたプログラムを
作っております。
そこで、タイトルの件なのですが
DataGridViewの一番左(行ヘッダー)をクリックすると行選択、
一番上(列ヘッダー)をクリックすると列選択、
セルをクリックするとセル選択できるようにしたいと思っています。
しかし、DataGridViewのセル選択はSelectionModeという
プロパティで制御しているようでして、以下の5種類の選択方法しかないようです。
(1) CellSelect
1 つ以上の個別のセルを選択できます。
(2) FullRowSelect
行のヘッダーまたは行内のセルをクリックすることによって行全体が選択されます。
(3) FullColumnSelect
列のヘッダーまたは列内のセルをクリックすることによって列全体が選択されます。
(4) RowHeaderSelect
行のヘッダー セルをクリックすることによって行が選択されます。個別のセルは、そのセルをクリックすることによって選択できます。
(5) ColumnHeaderSelect
列のヘッダー セルをクリックすることによって列が選択されます。個別のセルは、そのセルをクリックすることによって選択できます。
要するに、
(1)…セル選択のみ可能
(2)…行選択のみ可能(セルクリック時は行選択扱い)
(3)…列選択のみ可能(セルクリック時は列選択扱い)
(4)…行選択とセル選択のみ可能
(5)…列選択とセル選択のみ可能
ということなので、私の望む、
・行選択と列選択とセル選択が可能
という制御は無理なのでしょうか。
ご存知の方いましたら、ご教示の程お願い致します。
No.1ベストアンサー
- 回答日時:
泥臭いけど。
1.複数選択を可能とする
2.セル選択モードはセル選択のみ
3.列ヘッダのクリックイベントに次の処理を加える
・選択セルをクリア
・対象列の全行分のセル選択モード設定する処理
4.行ヘッダのクリックイベントに次の処理を加える
・選択セルをクリア
・対象行の全列分のセル選択モード設定する処理
早速のご回答ありがとうございます。
戴いたアドバイスを参考に以下のように作成したところ
望んだ通りの挙動になりました。
Private Sub dgvMain_ColumnHeaderMouseClick(sender As System.Object, e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles dgvMain.ColumnHeaderMouseClick
Dim i As Integer = 0
dgvMain.ClearSelection()
For i = 0 To dt.Rows.Count - 1
dgvMain.Item(e.ColumnIndex, i).Selected = True
Next
End Sub
Private Sub dgvMain_RowHeaderMouseClick(sender As System.Object, e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles dgvMain.RowHeaderMouseClick
Dim i As Integer = 0
dgvMain.ClearSelection()
For i = 0 To dt.Columns.Count - 1
dgvMain.Item(i, e.RowIndex).Selected = True
Next
dgvMain.Rows(e.RowIndex).Selected = True
End Sub
行ヘッダーの三角が移動しなかったので、
CurrentCellにクリックした行の情報を突っ込むことで
なんとかそれっぽく動きました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
- Excel(エクセル) 余計なお世話的な「入力規則」?対策は? 2 2023/01/14 12:39
- Excel(エクセル) Excelに文字データのみを貼り付けたい 8 2023/05/03 15:38
- その他(Microsoft Office) EXCELでバーコードを作成すると白くなってコードが見えません 1 2022/04/04 14:24
- Excel(エクセル) マクロ セルの選択 5 2022/08/12 22:47
- Excel(エクセル) excelで可視セルのみ置換 3 2022/08/04 11:02
- Excel(エクセル) Excelにの以下の設定方法について教えてください! C列にデータ入力の設定をしています。(出、入を 3 2022/06/22 01:33
- Excel(エクセル) エクセルの数式で教えてください。 1 2022/10/25 09:26
- その他(Microsoft Office) 選択行の列範囲に二重線を引く 3 2022/06/08 12:21
- Excel(エクセル) [オートフィルター]機能について 3 2023/02/04 14:32
このQ&Aを見た人はこんなQ&Aも見ています
-
いちばん失敗した人決定戦
あなたの「告白」での大失敗を教えてください。
-
泣きながら食べたご飯の思い出
泣きながら食べたご飯の思い出を教えてください。
-
最速怪談選手権
できるだけ短い文章で怖がらせてください。
-
チョコミントアイス
得意ですか?不得意ですか?できれば理由も教えてください。
-
人生で一番お金がなかったとき
人生で一番お金がなかったときって、どんなときでしたか?
-
DataGridViewでセルクリックイベントを発生させるには
Visual Basic(VBA)
-
データグリッドビューの一番最初の行に列を追加したい
Visual Basic(VBA)
-
C# DataGridView のヘッダーセル中央揃え
C言語・C++・C#
-
-
4
VB.NET DataGridView 縦スクロールバーを常に表示
Visual Basic(VBA)
-
5
DataGridViewの特定列に入力されている重複チェックをしたい
Visual Basic(VBA)
-
6
DataGridViewの、選択されている行を取り出したい
Visual Basic(VBA)
-
7
DataGridViewのチェックボックスのON、OFFの判定方法
C言語・C++・C#
-
8
VB.net データーグリッドビューで余白を無くし
Visual Basic(VBA)
-
9
C# DataGridViewで複数選択したセルに同じ値を一括で入力するには
C言語・C++・C#
-
10
VBからEXCELのセルの値を取得する方法
Visual Basic(VBA)
-
11
VB2005 DataGridView上でクリックを無効にする方法はありますか?
Visual Basic(VBA)
-
12
vb2008にてDefaultCellStyleが反映されない
Visual Basic(VBA)
-
13
C# DataGridView の列ヘッダーのマウス右クリックイベントにつきまして
C言語・C++・C#
-
14
データバインドされたDatagridviewの列をコンボボックスにするには
Visual Basic(VBA)
-
15
DataGridViewのセル編集完了後に値を設定するには
Visual Basic(VBA)
-
16
DataGridViewにてセル以外をクリックしたか判別
Visual Basic(VBA)
-
17
VB.NET2003 テキストボックスに半角英数字以外入力させない
Visual Basic(VBA)
-
18
CloseとDisposeの違い
Visual Basic(VBA)
-
19
DataGridView、1セルに複数コントロール
C言語・C++・C#
-
20
C# dataGridViewの値だけクリア
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで指定した日付から過去の...
-
i=cells(Rows.Count, 1)とi=cel...
-
特定のセルが空白だったら、そ...
-
エクセルvbaで、別シートの最下...
-
VBA実行後に元のセルに戻りたい
-
”戻り値”が変化したときに、マ...
-
TODAY()で設定したセルの日付...
-
ExcelVBAを使って、値...
-
Application.Matchで特定行の検索
-
セル色なしの行一括削除
-
Excelのプルダウンで2列分の情...
-
VBA ユーザーフォーム ボタンク...
-
特定の範囲内に空白セルがいく...
-
Excel2013,2016 マクロの動作が...
-
共有フォルダからのファイル名...
-
同じマクロのプログラムなのに...
-
vb.netによるEXCEL値取得
-
EXCELで変数をペーストしたい
-
Excel VBAで、 ヘッダーへのセ...
-
Excel2003 複数セル1列の入力済...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
Excelで指定した日付から過去の...
-
i=cells(Rows.Count, 1)とi=cel...
-
特定のセルが空白だったら、そ...
-
エクセルvbaで、別シートの最下...
-
【Excel VBA】指定行以降をクリ...
-
Excelのプルダウンで2列分の情...
-
VBA実行後に元のセルに戻りたい
-
Excel vbaで特定の文字以外が入...
-
連続する複数のセル値がすべて0...
-
Excel VBA マクロ ある列の最終...
-
VBからEXCELのセルの値を取得す...
-
【Excel】指定したセルの名前で...
-
”戻り値”が変化したときに、マ...
-
VBAでセルをクリックする回...
-
Application.Matchで特定行の検索
-
VBA ユーザーフォーム ボタンク...
-
EXCELで変数をペーストしたい
-
vba 隣のセルに値がある行だけ...
-
VBAでセル同士を比較して色付け
おすすめ情報