- PR -

DataGridViewの指定した行に行を挿入したい

1
投稿者投稿内容
サンジ
会議室デビュー日: 2008/09/14
投稿数: 12
投稿日時: 2008-11-28 20:51
VB2005で開発しています。

DataGridViewに10行存在しているとして、
その途中の行、例えば5行目に行を挿入したいのですが、
何か良い方法はございませんか?

私なりに調べてみたのですが、
最下行に1行追加して、1行ずつずらしていく方法しか
わかりませんでした。

何か良い方法がないものかと思っているのですが、
もしございましたら、教えて頂きたいです。

ぜひよろしくお願いいたします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-11-28 21:59
引用:

サンジさんの書き込み (2008-11-28 20:51) より:

DataGridViewに10行存在しているとして、
その途中の行、例えば5行目に行を挿入したいのですが、
何か良い方法はございませんか?


System.Windows.Forms.DataGridViewRowCollection.Insert メソッドというスバリそのものがあります。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
108
常連さん
会議室デビュー日: 2007/12/12
投稿数: 45
投稿日時: 2008-11-29 09:48
引用:
DataGridViewに10行存在しているとして、
その途中の行、例えば5行目に行を挿入したいのですが



にはじゃんぬねっとさんの回答以上のものはありませんが、

バインドするソースを
連番列などを使ってソートされているとして、
バインドソースに追加ならば
DataTable.Rows.InsertAt()
BindingSource.AddNew とかになるかと思いますが
いずれにせよ、追加後にソートが走るので連番の再付加は必要かと。
サンジ
会議室デビュー日: 2008/09/14
投稿数: 12
投稿日時: 2008-11-29 23:41
引用:

じゃんぬねっとさんの書き込み (2008-11-28 21:59) より:
System.Windows.Forms.DataGridViewRowCollection.Insert メソッドというスバリそのものがあります。



ご回答ありがとうございます。

MSDNもみてみたのですが、どうしても理解できませんでした。
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.datagridviewrowcollection.insert.aspx

大変申し訳ございませんが
もう少し具体的に教えていただけませんでしょうか?

ぜひよろしくお願い致します。
サンジ
会議室デビュー日: 2008/09/14
投稿数: 12
投稿日時: 2008-11-30 00:52
引用:

108さんの書き込み (2008-11-29 09:48) より:
引用:
DataGridViewに10行存在しているとして、
その途中の行、例えば5行目に行を挿入したいのですが



にはじゃんぬねっとさんの回答以上のものはありませんが、

バインドするソースを
連番列などを使ってソートされているとして、
バインドソースに追加ならば
DataTable.Rows.InsertAt()
BindingSource.AddNew とかになるかと思いますが
いずれにせよ、追加後にソートが走るので連番の再付加は必要かと。


ご回答ありがとうございます。
今回はデータバインドしていませんが、
今後の参考にさせていただきます。
とても勉強になりました。
なかむら
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 67
お住まい・勤務地: 福岡
投稿日時: 2008-12-01 09:16
引用:

MSDNもみてみたのですが、どうしても理解できませんでした。
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.datagridviewrowcollection.insert.aspx

大変申し訳ございませんが
もう少し具体的に教えていただけませんでしょうか?

ぜひよろしくお願い致します。


じゃんぬねっとさんの回答で十分だと思うんですが…。
「具体的に」というのは「コードを提示して欲しい」ということですか?

DataGridView の Rows プロパティの型は DataGridViewRowCollection です。
だから、行の挿入は下記のようなコードになります。
コード:
dataGirdView.Rows.Insert(
    2,     // 挿入位置
    newRow // 挿入する行
);


_________________
Nakamura Blog
サンジ
会議室デビュー日: 2008/09/14
投稿数: 12
投稿日時: 2008-12-01 10:20
引用:

なかむらさんの書き込み (2008-12-01 09:16) より:
じゃんぬねっとさんの回答で十分だと思うんですが…。
「具体的に」というのは「コードを提示して欲しい」ということですか?

DataGridView の Rows プロパティの型は DataGridViewRowCollection です。
だから、行の挿入は下記のようなコードになります。
コード:

dataGirdView.Rows.Insert(
2, // 挿入位置
newRow // 挿入する行
);




理解できました。
どのようなコードを書くべきかわからなかったのです。
とてもたすかりました。
ありがとうございました。


[ メッセージ編集済み 編集者: サンジ 編集日時 2008-12-01 10:20 ]
風になる
ベテラン
会議室デビュー日: 2008/07/28
投稿数: 85
投稿日時: 2008-12-06 11:46
(利用規約違反のため削除いたしました。@ITクラブメンバーシップセンター)
1

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