トップ回答者
DataGridViewで特定の列に列番号を自動入力させたい

質問
-
いつもお世話になっています。
フォーム内の、DataGridViewの列の列番号を特定列に表示させたいのですが、どうすればよいのかよくわかりません。
private void dataGridView_Number() { for (int i = 0; i < dataGridView1.Columns.Count; ++i) { dataGridView1.Rows[i].Cells[0].Value = Convert.ToInt32(this.dataGridView1.CurrentCell.ColumnIndex); } }
試しに、上記のようなソースコードを書いて実行してみましたが、実行すると
System.ArgumentOutOfRangeException が発生しました
HResult=0x80131502
Message=インデックスが範囲を超えています。負でない値で、コレクションのサイズよりも小さくなければなりません。
パラメーター名:indexというエラーが出ます。
どうすればよいのでしょうか?
回答
-
であれば、以下のような感じでしょうか?
private void dataGridView_Number() { for (int i = 0; i < dataGridView1.Rows.Count; ++i) { dataGridView1.Rows[i].Cells[0].Value = i; } }
#上記のコードは実際に動作確認をしておりません。
★良い回答には回答済みマークを付けよう! MVP - .NET http://d.hatena.ne.jp/trapemiya/
- 回答としてマーク chmod_777 2018年1月10日 0:52
すべての返信
-
forは列の数だけ回していますが、それを
dataGridView1.Rows[i]
と、i、すなわち列のインデックスを行のインデックスと使っています。
おそらく、この辺りの考え方に誤りがありますが、実際、どのようなことをされたいのかもう少し具体的に書いていただけると、回答も具体的に得られると思います。★良い回答には回答済みマークを付けよう! MVP - .NET http://d.hatena.ne.jp/trapemiya/
-
forは列の数だけ回していますが、それを
dataGridView1.Rows[i]
と、i、すなわち列のインデックスを行のインデックスと使っています。
おそらく、この辺りの考え方に誤りがありますが、実際、どのようなことをされたいのかもう少し具体的に書いていただけると、回答も具体的に得られると思います。
★良い回答には回答済みマークを付けよう! MVP - .NET http://d.hatena.ne.jp/trapemiya/
あるテキストボックスに値を入力すると、DataGridViewに入力した値の行を追加するプログラムを作成しております。
ここで、行が追加される際に列番号も入力されるようにしたいのです。
-
列番号とは具体的にどのようなものでしょうか? 単純に左から数えて何番目であるとか、そうではなく、列毎に特定の番号が割り当ててあって、その番号であるとかでしょうか?
いずれにしましても、もう少し詳細にやりたいことを説明されて、今書いているコードを支障ない範囲で提示されると、的確な回答が早く付きやすくなると思います。
実際、私の方でもサンプルコードは書けますが、どのようなことを実現されたいのかの情報が足らないため、どのようなサンプルコードを作成して良いかわからない状態です。★良い回答には回答済みマークを付けよう! MVP - .NET http://d.hatena.ne.jp/trapemiya/
-
であれば、以下のような感じでしょうか?
private void dataGridView_Number() { for (int i = 0; i < dataGridView1.Rows.Count; ++i) { dataGridView1.Rows[i].Cells[0].Value = i; } }
#上記のコードは実際に動作確認をしておりません。
★良い回答には回答済みマークを付けよう! MVP - .NET http://d.hatena.ne.jp/trapemiya/
- 回答としてマーク chmod_777 2018年1月10日 0:52