DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DataGiridView で行番号 Index) を指定して行を削除したい

環境/言語:[OS: WinXPPro (SP2)、VS2005、言語 c#]
分類:[.NET]

Yuki で御座います。
いつもお世話になっております。
早速ですが、DataGridView で行番号 (index) を使って行を削除したいのですが、方法をお教え頂けますでしょうか ?
this.dataGridView1.Rows.Remove()
を試したのですが、引数の形式が dataGridViewRow ということで、上手く行きませんでした。
なお、index のデータ形は int としています。
初歩的な質問でまことに恐縮ですが宜しくお願いいたします。
下記では削除できませんか?

VB2005 のコードですが
DataGridView1.Rows.Remove(DataGridView1.Rows(5))
■No18537に返信(VBレスキュー(花ちゃん)さんの記事)
> 下記では削除できませんか?
>
> VB2005 のコードですが
> DataGridView1.Rows.Remove(DataGridView1.Rows(5))

VBレスキュー(花ちゃん)様、Yuki で御座います。
早速のご連絡、有り難うございました。
テストしましたが、上手く行きませんでした。
ちなみに、小生のコーディングは次の通りで、コンパイル時にエラーが出ます。

this.dataGridView1.Rows.Remove(this.dataGridView1.Rows(delRowNo));

delRowNo は削除すべき行の index で、int 形です。
エラーが出るならエラーの内容ぐらい書いてください。
大抵はメッセージ読めば原因が分かるもんですけど。

DataGridViewRowCollection.Remove にせよ RemoveAt にせよ、ドキュメントには使うなって書いてありますな。
DataGridView に表示しているデータはどうしているのでしょうか?
BindingSource を DataSource としているのなら、その BindingSource に削除用メソッドが用意されていますが。
直接 DataTable とかを DataSource にしているなら、BindingContext から CurrencyManager を、ってことになりますかね。
■No18540に返信(Hongliangさんの記事)
> エラーが出るならエラーの内容ぐらい書いてください。
> 大抵はメッセージ読めば原因が分かるもんですけど。
>
> DataGridViewRowCollection.Remove にせよ RemoveAt にせよ、ドキュメントには使うなって書いてありますな。
> DataGridView に表示しているデータはどうしているのでしょうか?
> BindingSource を DataSource としているのなら、その BindingSource に削除用メソッドが用意されていますが。
> 直接 DataTable とかを DataSource にしているなら、BindingContext から CurrencyManager を、ってことになりますかね。

Hongliang 軍団様、Yuki で御座います。
エラーメッセージの件、失念しておりました。申し訳ありません。表示されるメッセージは次の通りです。

'System.Windows.Forms.DataGridView.Rows'は'プロパティ'ですが'メソッド'のように使用されています。

データですが、直接、DataGridView に書き込んでいるだけで、Bind しておりません。
■No18541に返信(Yukiさんの記事)
> 'System.Windows.Forms.DataGridView.Rows'は'プロパティ'ですが'メソッド'のように使用されています。

メソッドのように使用されているからですね。

指定行を削除したいのでしたら
dim index as integer

DataGridView.Rows.RemoveAt(index)

これでできませんか。
■No18545に返信(camanさんの記事)
> ■No18541に返信(Yukiさんの記事)
>>'System.Windows.Forms.DataGridView.Rows'は'プロパティ'ですが'メソッド'のように使用されています。
>
> メソッドのように使用されているからですね。
>
> 指定行を削除したいのでしたら
> dim index as integer
>
> DataGridView.Rows.RemoveAt(index)
>
> これでできませんか。
>
>

caman 様、Yuki で御座います。
ご回答、有り難う御座います。テストいたしましたところ、DataGridView から削除できました。
caman 様ほか、ご回答頂きました皆様、本当に有り難うございました。
今後とも、宜しくお願いいたします。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板