- PR -

C#のFormの継承について

1
投稿者投稿内容
QnA
常連さん
会議室デビュー日: 2005/01/20
投稿数: 23
投稿日時: 2006-08-09 16:29
こんにちは。

C#のFormの継承について、質問します。

Form1をForm2で継承した場合
コンストラクタの引数を、以下のように設定すると
プログラムは動作するのですが、Form2のデザイナの画面で
Form1にコンストラクタが見つかりませんでした、とエラーが出て
デザイナの画面が表示されません。
どなたか、解決方法を教えてください。

public partial class Form1 : Form
{
public Form1(int Id)
{
InitializeComponent();
  intId = Id;
}
private int intId;
}

public partial class Form2 : Form1
{
public Form2(int Id) : base(Id)
{
InitializeComponent();
}
}
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-09 16:50
引用:

QnAさんの書き込み (2006-08-09 16:29) より:

コンストラクタの引数を、以下のように設定するとプログラムは動作するのですが、Form2のデザイナの画面でForm1にコンストラクタが見つかりませんでした、とエラーが出てデザイナの画面が表示されません。


デザイナへ表示するには、デフォルト コンストラクタが必要なのではないでしょうか。
デフォルト コンストラクタで、IntializeComponent メソッドの呼び出しが必要だということです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
QnA
常連さん
会議室デビュー日: 2005/01/20
投稿数: 23
投稿日時: 2006-08-10 09:44
じゃんぬねっとさん、ありがとうございます。

以下のように、修正しました。

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

public Form1(int Id)
{
InitializeComponent();
  intId = Id;
}
private int intId;
}

public partial class Form2 : Form1
{
public Form2(int Id) : base(Id)
{
InitializeComponent();
}
}
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-10 12:16
引用:

QnAさんの書き込み (2006-08-10 09:44) より:

以下のように、修正しました。


はい。

... ... ... えっと、状況はどうなったのでしょうか?
まだ、解決できていないということでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
QnA
常連さん
会議室デビュー日: 2005/01/20
投稿数: 23
投稿日時: 2006-08-16 16:03
じゃんぬねっとさん、返事が遅れてすいませんでした。

修正した結果デザイナへ、表示するようになりました。

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)