DOBON.NET DOBON.NETプログラミング掲示板過去ログ

オーバーライドしたクラスを使っているフォームの事で

環境/言語:[環境(Windows 2000) 使用言語 (VB.NET)]
分類:[.NET]

お世話になります。
現在TextBoxやDataGrid等オーバーライドし使っていますが
フォームエディット上でプロパティ等ちょっとでも触ると
Windows フォーム デザイナで生成されたコードの中の
Friend WithEvents txtDateInput As gyoumu.MyTextBox

txtDateInput = TextBoxの名前
gyoumu.MyTextBox =(オーバーライドしたクラス)


WithEventsが消えてしまい
このクラスの関連するイベントのハンドルが全て消えてしまいます。

プロパティを変えようとすると
ソース内を触らなければなりません。

又一々WithEventsを付けて、イベントのハンドルを記述していかなくてはなりません。
プロパティを触ってもWithEventsが消えない方法があるのでしょうか?
ご存知の方是非教えて下さい
宜しくお願い致します。
2004/11/16(Tue) 19:00:30 編集(投稿者)

誤字修正。

■No7437に返信(こうさんの記事)
> お世話になります。
> 現在TextBoxやDataGrid等オーバーライドし使っていますが
> フォームエディット上でプロパティ等ちょっとでも触ると
> Windows フォーム デザイナで生成されたコードの中の
> Friend WithEvents txtDateInput As gyoumu.MyTextBox
>
> txtDateInput = TextBoxの名前
> gyoumu.MyTextBox =(オーバーライドしたクラス)
>
> の
> WithEventsが消えてしまい
> このクラスの関連するイベントのハンドルが全て消えてしまいます。
>
> プロパティを変えようとすると
> ソース内を触らなければなりません。
>
> 又一々WithEventsを付けて、イベントのハンドルを記述していかなくてはなりません。
> プロパティを触ってもWithEventsが消えない方法があるのでしょうか?
> ご存知の方是非教えて下さい
> 宜しくお願い致します。

こうさん、こんにちは。
たぶん、ユーザーコントロールを使っているのだと思いますが、
それを前提にまず、チェックして欲しいポイントを述べます。
1.ユーザーコントロールはプロジェクトと使用しているプロジェクトが同一ソリューション内である。
2.使用しているプロジェクトをReleaseビルドをしている
3.そのあと、Debugモードに切り替えた。
4.デザイン画面を開いてしまった。
これにより、WithEventsが消えてしまっているのであれば、
直す手順として、
1.ユーザーコントロールを単独でDebugコンパイル
2.一度、デザインファイル、コードファイルを閉じる。
3.再び、デザインファイルを開く
で、直るはずです。

もし、違っていたら、ごめんなさい。
ユーザーコントロールを単独でDebugコンパイル
とはどう言う風にするのでしょうか?
使い方が分からなくて・・・
すみませんm(_ _)m
■No7445に返信(もんさんの記事)
> ユーザーコントロールを単独でDebugコンパイル
> とはどう言う風にするのでしょうか?
> 使い方が分からなくて・・・
> すみませんm(_ _)m
もんさん、こんにちは。
ソリューションエクスプローラにある、プロジェクトを右クリックしたら、メニューが現れますので、ビルド(リビルド)してください。
ただし、モードを変更した上でのビルドの場合は、リビルドを選択してください。
■7437 に返信
こうさん こんにちは
Windows フォーム デザイナで生成されたコードの中で
単純なプロパティの設定でなくて 少し複雑なプロパティの
設定をしていませんか?
Windows フォーム デザイナはデザイナーが理解できないコードがあると
すぐにコントロールを非表示にします。
デリケートなんでしょうか?
私の場合は
複雑なプロパティはLoadイベント等に移動しています。

DOBON.NET | プログラミング道 | プログラミング掲示板