トップ回答者
DataGridView 列が勝手に追加される

質問
-
こちらで質問するのは初めてです。失礼がございましたらお許しください。
DataGridView について質問があります。
1.DataGridViewを配置し、手動で列を追加します。
2.DataGridViewのデータソースの選択を行います。
3.DataGridViewを配置したフォームを閉じます。
4.再び、同フォームを開きます。
以上のような手順を踏むと、選択を行ったデータソースのカラムが
列として、DataGridViewに勝手に追加されます。
調べた結果、
AutoGenerateColumns = Falseにすればよいということでしたので、
Designer.vbに記述しようとしたところ、InitializeComponent()中に、
AutoGenerateColumns = Falseという
コードが自動生成されていました。
アプリケーションを実行すると、AutoGenerateColumns = Falseは
効いていて、最初に追加したカラムのみの表示なのですが、
実行していないとき(開発中)には、勝手に追加されるカラムを
表示しないようにするにはどうしたらよいのでしょうか?
削除しても、また、表示されてしまうので嫌なので、
どのようにしたら良いかおしえていただけませんでしょうか?
何卒よろしくお願いいたします。
[OS]WindowsXp
VisualBasic2008ExpressEdition
回答
-
デザイナでDataGridViewのデータソースを選択した際に、自動的にデータソースに応じた列(DataGridViewColumn)が生成されるのはデザイナの仕様であり、生成されないようにすることは無理だと思います。
この仕様のため、自動的にAutoGenerateColumns = falseとなるのも理にかなっています。
通常は同じデータソースを選択し直すことはほとんど無いと思いますので、以上の仕様で特に問題がないように思えます。
rinko1982さんは同じデータソースを何度も選択し直されているのでしょうか?
なお、AutoGenerateColumns = trueとするのは、デザイナでデータソースを割り当てず、コードで動的にデータソースを割り当てた場合、とりあえずデータを表示してほしいからデータソースの列に応じて、DataGridViewの列(DataGridViewColumn)をDataGridViewを表示する時だけ動的にちょこっと作ってちょうだい、お願い。といったケースなどで使います。
この際、DataGridViewに列(DataGridViewColumn)が既にあろうがなかろうが関係ありません。とにかく、データソースからDataGridViewの列(DataGridViewColumn)が自動的かつ動的に作成されてDataGridViewに追加されます。
すべての返信
-
デザイナでDataGridViewのデータソースを選択した際に、自動的にデータソースに応じた列(DataGridViewColumn)が生成されるのはデザイナの仕様であり、生成されないようにすることは無理だと思います。
この仕様のため、自動的にAutoGenerateColumns = falseとなるのも理にかなっています。
通常は同じデータソースを選択し直すことはほとんど無いと思いますので、以上の仕様で特に問題がないように思えます。
rinko1982さんは同じデータソースを何度も選択し直されているのでしょうか?
なお、AutoGenerateColumns = trueとするのは、デザイナでデータソースを割り当てず、コードで動的にデータソースを割り当てた場合、とりあえずデータを表示してほしいからデータソースの列に応じて、DataGridViewの列(DataGridViewColumn)をDataGridViewを表示する時だけ動的にちょこっと作ってちょうだい、お願い。といったケースなどで使います。
この際、DataGridViewに列(DataGridViewColumn)が既にあろうがなかろうが関係ありません。とにかく、データソースからDataGridViewの列(DataGridViewColumn)が自動的かつ動的に作成されてDataGridViewに追加されます。