| ■No55067 (魔界の仮面弁士 さん) に返信 >>現状では、複数セルが選択状態の時、任意の選択セルをマウスダウンした時点で、 >>選択状態が変わり、マウスダウンしたセルのみの選択になってしまいます。 > > どのようなコードになっていますか?
コードは特に特殊なことはしておりません。 まず、デザイナ上で、フォームにDataGridViewを貼り付け、Column1とColumn2の列を追加しました。 また、グリッドデータの書き換えができないよう、DataGridViewのReadOnlyプロパティはTrueにしてあります。 (他のDataGridViewのプロパティは変更していません。) また、フォームのコードは以下の通りです(単純にデータをグリッドに追加しているだけ)。
Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load DataGridView1.Rows.Add("1", "あああああ") DataGridView1.Rows.Add("2", "いいいいい") DataGridView1.Rows.Add("3", "ううううう") End Sub End Class
このフォームを起動し、Ctrl・Shiftキーを使い、複数セルの選択ができるのですが、 複数セルが選択された状態で任意のセル左クリックでマウスダウンを行うと、 マウスダウンを行ったセルのみの選択になってしまいます。 ※提示頂いたサンプルでは、ドラッグしたデータには複数セルのデータが含まれていると思いますが、 結果、グリッド上では一つのセルの選択しか表示されません。 ドラッグ中でも、選択したセルすべてが選択状態になっていてほしいのです。
例えば、エクスプローラーでは、
・選択されていないファイルのマウスダウン(Ctrl・Shiftキーなし)を行うと、今までの選択が解除され、 マウスダウンを行ったファイルが選択状態となる。 ・選択されていないファイルのマウスダウン(Ctrl・Shiftキーあり)を行うと、各キーの機能に応じて 選択箇所を含めた範囲が選択状態となる。 ・選択されているファイルのマウスダウン(Ctrl・Shiftキーなし)を行うと、選択箇所をドラッグできる。
という振る舞いになっていますが、まさにこれと同じことを実現したいのです。
説明が不足していて申し訳ございません。 宜しくお願いします。 |