C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
Re[4]: DataGridView拡張Controlの列が勝手に増える
(過去ログ 123 を表示中)
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
[トピック内 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
-