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

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

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

Re[4]: DataGridView拡張Controlの列が勝手に増える


(過去ログ 123 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■73296 / inTopicNo.1)  DataGridView拡張Controlの列が勝手に増える
  
□投稿者/ モモ (1回)-(2014/09/09(Tue) 13:52:52)

分類:[C#] 

DataGridViewを継承した拡張コントロールを作成し、そのコントロールをフォームのデザイナに
配置すると、ビルドをするたびに勝手に列が増えていきます。
作成方法が何か誤っているのでしょうか?
回避方法を教えていただけますと幸いです。
引用返信 編集キー/
■73297 / inTopicNo.2)  Re[1]: DataGridView拡張Controlの列が勝手に増える
□投稿者/ 魔界の仮面弁士 (116回)-(2014/09/09(Tue) 14:07:37)
2014/09/09(Tue) 14:23:26 編集(投稿者)

No73296 (モモ さん) に返信
> DataGridViewを継承した拡張コントロールを作成し、そのコントロールをフォームのデザイナに
> 配置すると、ビルドをするたびに勝手に列が増えていきます。

・AutoGenerateColumns は何に設定してありますか?
・列情報の定義を何処で行っていますか?


Form1 等に貼ったときに、Form1.Designer.cs 内に
列情報が追加されてしまい、DataGridView 自身の列情報と
二重定義になっているのでは無いでしょうか。


列情報の定義を、Form 側に担当させるのか、DataGridView 内部でのみ
編集可能にしてしまうのかによっても異なりますが、Form 側での
編集が不要なら、EndInit 時にいったん破棄してしまうとか…(駄目かな)

class DataGridViewEx : DataGridView, System.ComponentModel.ISupportInitialize
{
 void System.ComponentModel.ISupportInitialize.EndInit()
 {
  if (!DesignMode)
  {
   this.Columns.Clear();
   this.Columns.Add("F1", "列1");
   this.Columns.Add("F2", "列2");
   this.Columns.Add("F3", "列3");
   this.Columns.Add("F4", "列4");
   this.Columns.Add("F5", "列5");
  };
 }
}
引用返信 編集キー/
■73298 / inTopicNo.3)  Re[2]: DataGridView拡張Controlの列が勝手に増える
□投稿者/ モモ (3回)-(2014/09/09(Tue) 14:22:10)
早速のお返事ありがとうございます!

> ・AutoGenerateColumns は何に設定してありますか?

this.AutoGenerateColumns = false; // 列自動作成しない
にしています。

> ・列情報の定義を何処で行っていますか?
***.Designers.csの
private void InitializeComponent()
{
}
の中で行っています。
引用返信 編集キー/
■73299 / inTopicNo.4)  Re[3]: DataGridView拡張Controlの列が勝手に増える
□投稿者/ モモ (5回)-(2014/09/09(Tue) 15:17:48)
ご教授いただいたソースのEndInitの部分をBeginInitにすると大丈夫な感じなのですが、
なぜでしょうか??

class DataGridViewEx : DataGridView, System.ComponentModel.ISupportInitialize
{
 void System.ComponentModel.ISupportInitialize.BeginInit()
 {
  if (!DesignMode)
  {
   this.Columns.Clear();
   this.Columns.Add("F1", "列1");
   this.Columns.Add("F2", "列2");
   this.Columns.Add("F3", "列3");
   this.Columns.Add("F4", "列4");
   this.Columns.Add("F5", "列5");
  };
 }
}
引用返信 編集キー/
■73300 / inTopicNo.5)  Re[4]: DataGridView拡張Controlの列が勝手に増える
□投稿者/ PANG2 (42回)-(2014/09/09(Tue) 15:26:44)
コンストラクタ内でDesignModeの判定ができない。

http://yiaowang.web.fc2.com/programing/vs_tips/design_04.html
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -