- - PR -
実行時にデザイン画面での設定が実行時にクリアされてしまう
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-06-21 17:03
再現性が今一無いので抽象的な質問になってしまいますが、VisualStudio2003でWindowsアプリを作成の際、デザイン画面でコントロールを配置した後にコンパイルして実行をすると、実行した瞬間に特定のコントロールのLocateとSizeが(0,0)になったり特定のプロパティが強制的にある値に変更されたりする事があるのですが、原因分かる方いませんか?
新規画面で起きる事は殆ど無く、デザインを何度も変更してるとある時急になるので、デザイン時に無意識になんらかの行動をやったから起きる現象だとは思うのですが。 具体例が揚げ辛いので非常に分かり辛い質問になってると思いますが、分かる方がいましたらお願いします。 | ||||||||
|
投稿日時: 2005-06-21 17:39
こんにちは、じゃんぬ です。
そのフォームは System.Windows.Forms.Form 以外のフォームから継承されたフォームですか? 特定のコントロールの種類はなんでしょうか? Panel や GroupBox などのコンテナを使っていませんか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-06-21 18:06
返信ありがとうございます。
過去二回ほど経験ありますが、どちらもSystem.Windows.Forms.Formを継承した独自フレームワークのFormです。 コントロールは今はGrapeCityのFlexGrid for .NETですが、以前はSystem.Windows.Forms.TextBoxで出たはずです。 | ||||||||
|
投稿日時: 2005-06-21 18:11
こんにちは、じゃんぬ です。
つまり、System.Windows.Forms.Form を継承した独自のフォームを、 "さらに" 継承したフォームで起きているのですね。 だとすると、フォームの実装に問題があるのだと思います。 ちなみに、Form 内にある子コントロールまで継承していませんよね? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-06-21 18:56
こんにちは。cobaltです。
そうなりますが、今該当のコントロールを新規に作ったSystem.Windows.Forms.Formのフォームの上にコピペして実行してみた所同じ事が起きました。
FlexGridは継承したのを貼り付けていますが、テキストボックスはそのまま使っていました。 今該当画面を改めて見てみたのですが、Form上にFlexGridが二つ貼ってあって、コンパイルすると「メンバ'Styles'の宣言が重複しています。」と言う警告がが出てコンパイルが終了します(FlexGridにはStylesというプロパティがあります)。 で、コンパイルが終わった直後に該当コントロールの内容が元に戻っているようです。コンパイルが終わった直後にVisualStudioのファイル名タブの横に*がついてソースが変更されています。 「メンバ'Styles'の宣言が重複しています。」の警告ですが、原因が分からないし警告だからとりあえず無視してたのですが、どうも二つのFlexGridのStylesプロパティの内容が同じだから警告が出てるっぽく、片方のFlexGridをForm上から消してコンパイルかけるとコンパイル後に元に戻る事が無く問題の動きがなくなりました。 しかし、Stylesプロパティの内容をダブらせない為に片方のFlexGridのStylesプロパティをデザイナ上で変更しても、変更したStylesプロパティの内容がコンパイル後に元に戻ってしまう……。 警告メッセージ「メンバ'〜'の宣言が重複しています。」もこの問題のキーだと思うのですがこのメッセージの詳細分かる方もいましたら返信お願いします。 | ||||||||
|
投稿日時: 2005-06-21 19:17
自己レスです
コンパイルが終わった直後に → コンパイルが終わった後にデザイン画面を再描写させた時に ですね。再描写の為にVisualStudioがフォームのインスタンスを作るか何かしてる時に元に戻るみたいです。 |
1