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

インナークラスを使うとVB2005Exp.でデザイナが正常動作しなくなる

環境/言語:[開発環境そのもの(VB2005Express)]
分類:[.NET]

これまでVisual Studio.NET 2003で開発してましたが、
.NET2.0に自作ライブラリを移植したくて、
少し前からVisual Basic 2005 Express Edition・Visual Basic 2005 Express Editionを
試用(VSの前哨戦的に。)し始めました。

ユーザコントロールとして作成したクラスClassAとそれに付随するクラスClassBがあるのですが、
デザイナでこれを使用したフォームを作成したところ、
コンパイルも通るし、実行そのものもできるし、コードビルダ上でも何もエラーが出ていないのですが、
一度でもこのフォームのデザイン画面を閉じてしてもう一度開こうとすると、
ClassB1が宣言されてないか生成されてない、と勘違いされて画面が開きません。
(ClassAClassBはVisual C# 2005 Expressで作成したものです。DLLとして参照して使用しています。)

    'メモ: 以下のプロシージャは Windows フォーム デザイナで必要です。
    'Windows フォーム デザイナを使用して変更できます。  
    'コード エディタを使って変更しないでください。
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        Dim ClassB1 As Nmspc.ClassA.ClassB = New Nmspc.ClassA.ClassB()
        (略)
        ClassB1.Text = "20"            ←ここでおかしい。デザイナを開く時にClassB1が見えていない。
                                    ここをコメントにして消すと問題なくデザイナが開く。

普段C#で問題なく使用できているしどう見てもおかしくないのですが
2003の時にC#とVBで結構、言語レベルでなく開発環境でも色々できることに差があったのを思い出し、
ふと気になったインナークラス部をやめる(ClassBをClassAの外に出した。デザイナのために元々
publicだが、構造上中がよかった。)と、それ以外一切変えてませんがまったく問題なくデザイナが開くようになりました。

コンパイルも通り実行もできるのでVB2005の仕様ではないし、そもそもVB2005Expressのコードビルダでも
エラーが出ていないので本来VB2005Expressの開発環境でもそのような仕様は意図していなさそうですが、
デザイナ部分の不具合でしょうか。

(というか、不具合かどうかはっきりさせたいのではなく、)
「VisualStudio」の開発環境でもVBを使うとこうなるでしょうか。(ベースの動作はVSも同じもの?)
MSDN フォーラムにてフィードバックした方が食いついてくれると思います。
おそらく、不具合だとは思いますが...
あ、じゃんぬねっとさん、ありがとうございます。
そうですね。

ではそのようにしようと思いますので、
皆様、マルチ進行してしまうと問題なのでこちらへの返信は打ち切りさせてください。
(一応解決扱いにさせていただきますね。)

フィードバックは
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=1419313&SiteID=7&mode=1
として投稿しました。
解決済み!

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