- PR -

DataGridに表示されたデータをグリッドして並べ替える方法

1
投稿者投稿内容
haida
会議室デビュー日: 2004/12/10
投稿数: 3
投稿日時: 2004-12-10 14:20
はじめて投稿します。

ご存知の方は助けてください。
DataGridに表示したデータベースのレコードを、マウスドラッグで複数列選択し、
マウスで移動すると選択したレコードをソートする。といったような処理は可能なのでしょうか。(IEのお気に入りで、登録してあるページをマウス右クリックのまま上下に移動するような感じの処理を想像していただけると分かり易いかもしれません。)

[ メッセージ編集済み 編集者: haida 編集日時 2004-12-10 15:27 ]
とっと
大ベテラン
会議室デビュー日: 2004/03/25
投稿数: 197
投稿日時: 2004-12-10 15:26
こんにちは。
環境が書いていないのでWinアプリかWebか分かりませんが・・・。

Winアプリということなら、
>IEのお気に入りで、登録してあるページをマウス右クリックのまま上下に移動するような

をそのままやるのは大変かもしれませんが、行選択にして(別にしなくてもいいですが)、
最初にマウスで選択したDataGridの行のIndexと次にマウスで選択したDataGridの行の
Indexを取得すれば出来るかもしれませんね。

Webでも出来ると思いますが、最近やってないので・・・。
haida
会議室デビュー日: 2004/12/10
投稿数: 3
投稿日時: 2004-12-10 15:28
ご回答ありがとうございます。

スレッドへの投稿が初めてで書きなれていませんので、
情報不足でした。

開発環境はWinアプリです。
Os_
ベテラン
会議室デビュー日: 2003/04/16
投稿数: 77
投稿日時: 2004-12-10 16:17
Osです。

行選択は、マウスドラッグでできますが、
右クリックでの移動は、マウスのイベントを独自に処理する必要があります。

また、とっとさん移動先の行選択は、元(移動範囲)の選択情報が解除されますので、
事前に記憶するなどの処置が必要になるかと思います。
とっと
大ベテラン
会議室デビュー日: 2004/03/25
投稿数: 197
投稿日時: 2004-12-10 16:29
こんにちは。

引用:

Os_さんの書き込み (2004-12-10 16:17) より:

また、とっとさん移動先の行選択は、元(移動範囲)の選択情報が解除されますので、
事前に記憶するなどの処置が必要になるかと思います。




そうですね、まだどうしたいのかはっきり見えないので、僕の方も適当って言ったら
言葉が悪いですが、思いつき程度です・・。

要はマウスで最初に選んだ行からその次に選んだ行に行が移ればいいんでしょう?
並べ替えればいいんですよね。

マウスをドラッグしたまま目的地に持って行く方法でも、イベントの種類が変わる程度の
差なんでしょうか・・。

DataTableかDataViewでいろいろやったら出来そうですね。
Os_
ベテラン
会議室デビュー日: 2003/04/16
投稿数: 77
投稿日時: 2004-12-10 17:46
Osです。

まず、言葉足らずでとっとさんを不快にさせたのであればすみません。
スレ主さんへの配慮として書いたつもりでした。

そこで、移動の件ですが、仮に想定すると

マウスドラッグで行う場合
1.マウスの左ボタンで範囲を選択
2.マウスの右ボタンを押す。
   MouseDownイベントで選択範囲有無・選択領域内を判断する
   選択行を記憶
3.マウス移動(必要に応じて)
   MouseMoveイベントで移動状態を表現する?
4.マウスの右ボタンを離す
   MouseUpイベントで移動先を取得
   選択行の移動処理を行う

マウスドラッグで行わない場合
1.マウスの左ボタンで範囲を選択
2.何らかのアクションで選択範囲を記憶
3.移動先を選択
4.何らかのアクションで移動処理を行う

以上
とっと
大ベテラン
会議室デビュー日: 2004/03/25
投稿数: 197
投稿日時: 2004-12-10 18:29
こんにちは。

引用:

Os_さんの書き込み (2004-12-10 17:46) より:

まず、言葉足らずでとっとさんを不快にさせたのであればすみません。
スレ主さんへの配慮として書いたつもりでした。




いえいえ、とんでもない。お気使いありがとうございます。


haidaさんへ、
もう少し詳しい環境を書きましょう。
OSのバージョン、Frameworkのバージョン、言語の種類、データベースの種類等です。

あとは具体的に処理の順を考えてみて、疑問点を細分化してみましょう。
haida
会議室デビュー日: 2004/12/10
投稿数: 3
投稿日時: 2004-12-14 09:30
Osさん、とっとさん


ここ数日仕事場から離れていましたので、返答が遅くなりました。

技術的アドバイス及び書込みする際のアドバイスありがとうございます。
大変参考になりました。

OS:Win2000
Framework:V1.0
言語:VB.NET
DB:Oracle9i

です。

Osさんの助言を参考に検討してみます。

1

スキルアップ/キャリアアップ(JOB@IT)