- - PR -
DataGridViewの複数行のドラッグの開始について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2009-02-18 19:47
DataGridViewの複数行を選択状態にして、複数行のドラッグを開始したいのですが、以下の問題が発生し実現できません。
(Drag&Dropの実装部については一応理解できているものとお考えください) [問題確認手順] (1) DataGridViewで複数行をCtrlキーなどで選択状態にする。 参考:DataGridViewの属性設定は、以下。
(2) 選択した複数行をマウスでドラッグを開始する。 ⇒ ドラッグしようとすると、複数選択が、単一選択に戻ってしまう。 単一選択に戻ってしまうため、複数行のドラッグができない。 調べると、DataGridViewでは、OnMouseDown()イベントが呼び出された時点で、単一選択になります。 よって、ドラッグの開始(DoDragDrop関数の呼び出し)が記述されている、OnMosueMove()イベント時点で、単一選択になってしまいます。 このドラッグ開始時に、単一選択状態になってしまうのを回避する方法はありますでしょうか?例えば、OnMouseDown時点ではなく、OnMouseUp時点で、単一選択になるなど。 (エクスプローラの場合、このような動きです) よろしくお願いします。 | ||||
|
投稿日時: 2009-02-19 10:45
自己レスです。追加情報です。
OnCellMouseDownをオーバーライドして、base.OnCellMouseDown(e)を呼び出さなかったら、選択状態の複数行をそのまま選択状態にすることは可能でした。
しかし、呼び出さないと、以下のイベントが発生しなくなってしまいます。 ・OnCellClickイベント ・OnCellMouseClickイベント base.OnCellMouseDown(e); を呼び出さない弊害をつぶしていくしかないのかな。 |
1