- PR -

BindingNavigator の派生クラス

投稿者投稿内容
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-04-14 14:12
BindingNavigator の派生クラスを作ろうとしているのですが、コンストラクタの部分
がよくわかりません。

コード:

public class BindingNavigatorNew : System.Windows.Forms.BindingNavigator
{
}


勿論、上記のコードでビルド後に作成されたコントロールをフォームに配置すると
問題なく配置できます。

コード:

public class BindingNavigatorNew : System.Windows.Forms.BindingNavigator
{
    public BindingNavigatorNew(System.Windows.Forms.BindingSource bindingSource) : base(bindingSource) {
	// ここに初期化の処理を書きたい
    }
		
    public BindingNavigatorNew(bool addStandardItems) : base(addStandardItems) {
	// ここに初期化の処理を書きたい
    }
}


こう書いた状態でビルド後にフォームに配置すると次のようなエラーメッセージが表
示されます。

コード:
コンポーネント 'BindingNavigatorNew' を生成できませんでした。エラー メッセージ:
'System.MissingMethodException: 型 'R.Tanaka.Ichiro.Windows.Forms.BindingNavigatorNew' にコンストラクタが見つかりませんでした。
 場所 System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
 場所 System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
  :
  :
  :


System.Windows.Forms.BindingNavigator のコンストラクタをオブジェクトブラウザ
で調べても、上記の2つだけですし、きちんと base で基本クラスに渡していると思
うのですが何故エラーになるのかがわかりません。
cats
大ベテラン
会議室デビュー日: 2002/11/29
投稿数: 221
お住まい・勤務地: 東京
投稿日時: 2006-04-14 14:27
デフォルトコンストラクタ(引数なしのコンストラクタ)を用意して下さい。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-04-14 14:34
引用:

System.Windows.Forms.BindingNavigator のコンストラクタをオブジェクトブラウザ
で調べても、上記の2つだけですし、きちんと base で基本クラスに渡していると思
うのですが何故エラーになるのかがわかりません。


そう?ヘルプを見ると、4つありますが。
説明も豊富ですし、オブジェクトブラウザを見るよりヘルプを見たほうが良いように思います。
_________________
囚人のジレンマな日々
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-04-14 14:53
引用:

catsさんの書き込み (2006-04-14 14:27) より:

デフォルトコンストラクタ(引数なしのコンストラクタ)を用意して下さい。



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

引用:

囚人さんの書き込み (2006-04-14 14:34) より:

そう?ヘルプを見ると、4つありますが。
説明も豊富ですし、オブジェクトブラウザを見るよりヘルプを見たほうが良いように思います。



本当ですね。ヘルプを見ると4つありますね。
僕が2つと判断したのは、当然ヘルプを見たからではなくて、オブジェクトブラウザ
の BindingNavigator をクリックするとコンストラクタと思しきものが2つあったこ
とと、public BindingNavigator() :base( まで入力すると表示されるヒントに2つ
の候補しか表示されなかったためです。

これは、もしかして、僕は BindingNavigator の基本クラスの存在をわすれていた、
ということになるのでしょうか。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-14 15:29
いえ、4 つは継承メンバでないはずです。
継承メンバまで含めると実際には 9 つあるハズですから。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-04-14 15:52
じゃんぬねっとさん、いつもありがとうございます。

引用:

じゃんぬねっとさんの書き込み (2006-04-14 15:29) より:

いえ、4 つは継承メンバでないはずです。
継承メンバまで含めると実際には 9 つあるハズですから。



9つもあるのですね。9つあることも凄いですが、9つあると言えてしまう
じゃんぬねっとさんも凄いなぁと思います。

では、オブジェクトブラウザでや派生したクラスのコンストラクタで base( で表示
されるパラメーターヒントに表示される

 BindingNavigator(bool)
 BindingNavigator(System.Windows.Forms.BindingSource)

と、表示されない

 BindingNavigator()
 BindingNavigator (IContainer)

の違いは何なのでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-14 16:03
引用:

R・田中一郎さんの書き込み (2006-04-14 15:52) より:

9つあると言えてしまうじゃんぬねっとさんも凄いなぁと思います。


すみません、物言いみたいな書き方をしてしまいました。(*_ _)

引用:

の違いは何なのでしょうか?


メタデータを見てください。
EditorBrowsable 属性はどうなっていますか?

以前にも似たようなやりとりをしましたよね。(=^-^)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
よこけん
大ベテラン
会議室デビュー日: 2006/01/31
投稿数: 216
投稿日時: 2006-04-14 16:07
BindingNavigator()とBindingNavigator (IContainer)の属性には、
EditorBrowsable(EditorBrowsableState.Never)が指定されています。
これにより、これらのメソッドはエディタで表示されなくなるようです。

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