C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

DataGridViewの選択行を一つ上へ /apple (18/01/31(Wed) 15:43) #86466
Re[1]: DataGridViewの選択行を一つ上へ /daemon (18/02/01(Thu) 15:00) #86473


親記事 / ▼[ 86473 ]
■86466 / 親階層)  DataGridViewの選択行を一つ上へ
□投稿者/ apple (1回)-(2018/01/31(Wed) 15:43:25)

分類:[.NET 全般] 

はじめまして。お世話になります。
現在VB.NETを勉強している初心者です。

この度はタイトル通りにしたいと考えております。
DataGridViewにはチェックボックスを設けており、チェックされた行番号を取得し、更に複数選択
されている場合はそれらの行が連続している場合のみ別途のボタンを押すことで移動したいのです。

私としましては、
1. チェックされた行番号を取得する
2. それらの行番号が連続しているかどうか判別する
3. 一度DataGridViewのデータをDataTableに移す
4. 更にDataView移す
5. 選択行の番号をそれぞれ−1してから、その上の行を選択行の数だけ番号に+することで並び替
  える処理を行う
6. DataTableに戻す
7. DataGridViewにバインドする

以上のように考えております。
しかし、頭で考えているものを実際にコードに書き換えるとなると大変難しく苦戦しています。

違うやり方でも一向に構いませんので、どなたかアドバイスを頂けると幸いです。
宜しくお願いします。

[ □ Tree ] 返信 編集キー/

▲[ 86466 ] / 返信無し
■86473 / 1階層)  Re[1]: DataGridViewの選択行を一つ上へ
□投稿者/ daemon (2回)-(2018/02/01(Thu) 15:00:35)
良く分からない所があります。

・「チェックされた行番号」とありますが、この「行番号」とは
 データソース(DataTable)に含まれているのでしょうか(行番号列が存在)、
 DataGridViewの行インデックスのことでしょうか?

・「更に複数選択されている場合はそれらの行が連続している場合のみ別途のボタンを押すことで移動したい」
 とは何でしょうか?
 また、それらの行が連続していない場合はどうすればよいのでしょうか?

・結局、やりたいことは、チェックされたデータとその上のデータを入れ替えることなのでしょうか、
 そんな単純なものではないのでしょうか?

厳しい言い方かも知れませんが、
きちんとした言葉でやりたいことが定義できないようであれば、
プログラムを書くことは難しいですよ。
[ 親 86466 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -