0

親愛なる Stackoverflow ユーザーの皆様、こんにちは。

私が作成したユーザー コントロールに問題がある Winforms で作成されたプロジェクトがあります。ユーザーコントロールは、いくつかのレイアウトパネル、コントロールなどで構成されています。設定コントローラーとして使用することを目的としています。デフォルトで「true」に設定されている「ShowTitle」プロパティや「ShowDefault」プロパティなど、ユーザーコントロールのデザイン/レイアウトを変更するために使用されるプロパティがいくつかあります。プロパティの get/set は、基になる control.visibility を直接参照します。

ユーザーコントロールは設定の概要を示すためにタブコントロールに配置されますが、(ほとんど)ソリューションを再構築するたびに、現在デザイナーに表示されていないタブページのユーザーコントロールのすべての「表示...」プロパティが「間違い'。

デザイナーで設定を削除した場合: this.SpawnRate.ShowDefaultButton = false; 再構築すると再びポップアップする場合。

何がうまくいかないのか本当にわかりません。コードのバグを何時間も探しました。問題がどこにあるのか、誰にも手がかりがありますか?

//ノーティアス

編集:値を変更するのは、control.visibility プロパティを参照するプロパティのみです。

アップデート:

問題が見つかりました...明らかに、次のように Control.Visible 値を直接返すことはできません。

bool ShowBtn
{
get{ return Btn_Default.Visible; }
set{ Btn_Default.Visible = value; }
}

しかし、ローカル変数が必要でした:

bool ShowBtn
{
get{ return _ShowDefault; }
set{ Btn_Default.Visible = value;
     _ShowDefault = value; }
}
bool _ShowDefault = true;

変更後、問題は発生しなくなりました。

なぜ問題があるのか​​誰にも分かりますか?

4

1 に答える 1

0

問題が見つかりました...明らかに、次のように Control.Visible 値を直接返すことはできません。

bool ShowBtn
{
    get{ return Btn_Default.Visible; }
    set{ Btn_Default.Visible = value; }
}

しかし、ローカル変数が必要でした:

bool ShowBtn
{
    get{ return _ShowDefault; }
    set
    {
        Btn_Default.Visible = value;
        _ShowDefault = value; 
    }
}
bool _ShowDefault = true;

変更後、問題は発生しなくなりました。

于 2012-12-06T10:12:02.053 に答える