トップ回答者
UserControl 内でMaskedTextBoxのアクセッサを利用したときに・・・。

質問
-
いつも閲覧さえていただいております。
Visual Studio 2008 を利用して開発をしております。
UserControl 内に、MaskedTextBoxを配置して、アクセッサから、MaskedTextBoxにアクセスするようにしております。
= UserContrl
public class Hoge : UserControl
{
public MaskedTextBox
{
get { return txtMsk; }
set { txtMsk = value; }
}
}
作成した、UserControlを、Windows フォームのデザイナから配置しようとした際に、Visual Studio 2008 が強制終了します。
過去ログを見させていただき、DesignMode が正しく判断できていないことは理解できましたが、
対策方法を理解しきれませんでした。
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=3132727&SiteID=7
MaskedTextBoxを継承したUserControlを作成し、
その中で、DesignModeを判定すればよいかと思うのですが、
具体的にどのようなコードを記述したらよいかわかりませんでした。
対策の手順やサンプルを教えていただけると幸いです。
お手数をおかけしますが、ご教授お願い致します。
回答
すべての返信
-
ゆう163 さんからの引用 作成した、UserControlを、Windows フォームのデザイナから配置しようとした際に、Visual Studio 2008 が強制終了します。
下記のような手順を行いましたが、再現を確認できませんでした。(XPSP2、VS2008(SPなし))
単純にアクセサがあることが問題じゃないのでは?
1.Windowsフォームアプリケーションプロジェクトを作成する
2.ユーザコントロールを作成する
3.ユーザコントロールのデザイナでMaskedTextBoxを配置する。
4.ユーザコントロールのコードでアクセサを作る。
Code Snippetpublic MaskedTextBox Temp
{
get { return maskedTextBox1; }
set { maskedTextBox1 = value; }
}5.一度ビルドする。
6.ツールボックスに追加されたユーザコントロールをFormに貼り付ける
7.ビルドする。
8.デザイナを開き直す。
ゆう163 さんからの引用 MaskedTextBoxを継承したUserControlを作成し、
その中で、DesignModeを判定すればよいかと思うのですが、
具体的にどのようなコードを記述したらよいかわかりませんでした。
ユーザコントロールの中のユーザコントロールとかにすると、DesignMode = falseは十分あり得ます。
これはMaskedTextBoxを継承したコントロールを作っても同じことです。
ゆう163 さんからの引用 対策の手順やサンプルを教えていただけると幸いです。
何が必要なのか明確でない状態で、それをやるのは無責任ですし、状況によっては不適切なコードになるパターンもあり得ます。
せめて、どんなコードがまずくて、どのようにしたいのかもう少し明確にして下さい。
-
ご回答ありがとうごじます。
XPSP2、VS2008(SPなし)で開発させていただいております。
手順としましては、
1.ソリューションの作成
2.クラスライブラリ(プロジェクト)の作成
3.ユーザーコントロールの作成
4.ビルド
5.Windows フォームアプリケーションの作成
6.2で作成したクラスライブラリを、参照に追加
8.フォームの作成
9.フォームにツールボックスより、ユーザーコントロールを追加(ここでエラーが発生)
■エラー内容
AppName: devenv.exe AppVer: 9.0.21022.8 AppStamp:47317b3d
ModName: unknown ModVer: 0.0.0.0 ModStamp:00000000
fDebug: 0 Offset: 0ba26e9e2で作成した、クラスライブラリが下記になります。
http://moon.s20.xrea.com/SevenControl.lzh
ソリューションを作成し、Windowsアプリケーションを作成し、
その後、上記のプロジェクトを作成していただき、
Windowsフォームアプリケーションで、フォームを作成し、
デザイナで、上記プロジェクトに含まれているユーザーコントロールを配置していただく
時に落ちます。
手元にあるマシーン複数台でテストをさえていただきましたが、
必ず同じところでエラーが発生しました。
動作確認機
XPSP3、VS2008(SPなし)
XPSP2、VS2008(SPなし)
XPSP2、VS2008(SP1)
お手数をおかけしますが、ご教授お願いたします。