| ■No55072 (チョーさん さん) に返信 > コードは特に特殊なことはしておりません。 DoDragDrop ぐらいは行っていませんか?
> (他のDataGridViewのプロパティは変更していません。) DataGridView を複数用意しているのですね?
>> '(テキストデータにしてあるので、メモ帳等にドロップしてください) 間違えました、メモ帳にはドロップできません。 秀丸、ワードパッド、VS のエディタ上などにドロップしてみてください。 (メモ帳はファイルのドロップは受け付けるが、文字列のドロップは受け付けない)
> 結果、グリッド上では一つのセルの選択しか表示されません。 > ドラッグ中でも、選択したセルすべてが選択状態になっていてほしいのです。 「ドラッグ終了時」には解除される(ので復元作業が必要)とはいえ、 「ドラッグ中」は複数セルが選択状態になっているかと思います。
それとも、DoDragDrop の実行中にも解除されてしまうのでしょうか?
> ・選択されていないファイルのマウスダウン(Ctrl・Shiftキーなし)を行うと、今までの選択が解除され、 > マウスダウンを行ったファイルが選択状態となる。 これは現行通りですね。
> ・選択されていないファイルのマウスダウン(Ctrl・Shiftキーあり)を行うと、各キーの機能に応じて > 選択箇所を含めた範囲が選択状態となる。 これも現行通り。
> ・選択されているファイルのマウスダウン(Ctrl・Shiftキーなし)を行うと、選択箇所をドラッグできる。 「選択されているセルのマウスダウン」なら、イメージコードで言うと、
Dim ht = DataGridView1.HitTest(e.X, e.Y) If ht.Type = DataGridViewHitTestType.Cell AndAlso _ ht.RowIndex <> -1 AndAlso _ ht.ColumnIndex <> -1 AndAlso _ DataGridView1(ht.ColumnIndex, ht.RowIndex).Selected Then
If DataGridView1.DoDragDrop(…) = … Then
という感じのコードにすれば、それっぽい動きになるかと。 |