2010-12-16 7 views
1

Windowsアプリケーションフォームで作業していて、別のオブジェクトから出力を書きたい複数行のテキストボックスがあります。あるテキストボックスから別のフォームのテキストボックスにテキストを取り込むことについての同様の投稿があることがわかりました。しかし、私はメインフォームで作業しているし、別のものを新たにすることはできません。返信することなく、別のオブジェクトからフォームのテキストボックスに書き込む方法

他のクラスのメインフォームの.Textにどのように値を割り当てることができますか?

+0

あなたは何を意味するのですか?他のクラスは何でどこにいますか? – BeemerGuy

答えて

2

コントロールプロパティを取得または設定するフォームでパブリックプロパティを作成できます。

public partial class Form1 : Form 
{   

    ... 

    public string OperatorId 
    { 
     get { return OperatorIdField.Text.Trim().ToLower(); } 
    } 

    public string Password 
    { 
     get { return PasswordField.Text.Trim().ToLower(); } 
    } 

    ... 

} 

(私の例では、プロパティが読み込まれOperatorIdFieldとPASSWORDFIELDはテキストボックスです。唯一、すなわち彼らは唯一の方法「を取得」を持っている。あなたのケースではあなたにもメソッドを「設定」を追加する必要があると思います)。

メインフォームを他のオブジェクトに公開するには、メインフォームを公開する静的メンバーを作成します。

static class Program 
{ 
    public static Form MainForm; 

    /// <summary> 
    /// The main entry point for the application. 
    /// </summary> 
    [STAThread] 
    static void Main() 
    { 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 

     MainForm = new Form1(); 

     Application.Run(MainForm); 
    } 
} 

別の目的は、パスワードを取得する必要がある場合、コードは次のようなものになるだろう:「別のオブジェクトから」

string password = Program.MainForm.Password; 
1

2番目のフォームは、メインフォームでテキストボックスの値を変更する必要がある場合に呼び出すイベントが必要です。メインフォームはこのイベントに登録して、あるイベントハンドラでテキストを変更する必要があります。

関連する問題