0

今日は、C# の winform プログラムで質問をします。

フォーム Aフォーム Bがある場合。フォーム B にはテキスト ボックスがあります (読み取り専用)

フォーム A のコードは次のようになります。

B b = new B("FormB");
b.Show();

次のような FormB コード:

状況 1:

public B(string str)
{
   this.textbox1.text = str;

   this.textbox1.Enable = false;
}

プログラムを顧客サーバーに展開しましたが、textbox1.text = ""値はありませんが、ローカル コンピューターで動作します。

私はこれを試します:

状況 2:

public B(string str)
{
    this.textbox1.text = str;

    this.textbox1.ReadOnly = true;        
}

その後texbox1.text = "FormB";、ローカル コンピューターと顧客サーバーで動作します。

重要かつ重要な質問は、なぜ状況 1 がローカル コンピューターで機能し、顧客サーバーで機能しないのかということです。

これがなぜなのか誰にもわかりますか?

4

3 に答える 3

2

私があなたを正しく理解しているかどうかを確認さTextBoxください。ReadOnly = true Enabled = false


もしそうなら、それは設計によるものだと思います。

MSDN から: TextBoxBase.ReadOnly プロパティ

このプロパティが true に設定されている場合、ユーザーは実行時にコントロールの内容を変更できません。このプロパティを true に設定しても、コードで Text プロパティの値を設定できます。Enabled プロパティでコントロールを無効にする代わりに、この機能を使用して、コンテンツをコピーし、ツールヒントを表示できるようにすることができます。

于 2012-10-12T12:35:38.453 に答える
1

同様の質問が尋ねられ、回答されています...ここに私が提供したいくつかのサンプルがあります

1 つのサンプル
別のプロパティとメソッドを使用してデータを公開/交換する - ほぼ段階的なサンプル

于 2012-10-12T12:35:43.857 に答える
0

コンストラクターに含める必要がありInitializeComponent()ます-空白のコンストラクターと同じです。

http://www.dotnetperls.com/initializecomponent

于 2012-10-12T12:27:40.530 に答える