0

Helpers.cs のメソッドを呼び出す Form1.cs ファイルを含む Form1 があります。このメソッドは、フォームを生成したインスタンスを引数として受け取り、ボタンとテキストボックスを作成し、ボタンにハンドラーを割り当てます。ボタンハンドラーの開始時にテキストボックスのテキスト値をハンドラーメソッドに送信する方法?Helpers.csには次のメソッドがあります:

       public static void startpage(Form form)
    {
        try
        {
            var Tip = new Label() { Text = "Input instance name",
                Location = new Point(50, 50), AutoSize = true };

            var StartConnection = new LinkLabel() { Text = "Connect", 
                Location = new Point(50, 100), AutoSize = true};

            var InstanceInput = new TextBox() { Text = "INSTANCENAME", 
                Location = new Point(100, 70), MaxLength = 1000, Width = 200,
            BorderStyle=BorderStyle.FixedSingle};

            StartConnection.Click += new EventHandler(nextpage);

            Helpers.AddControlsOnForm(form,
                new Control[] {Tip,StartConnection,InstanceInput });

        }
        catch(Exception ex) 
        { MessageBox.Show("Error occured. {0}",ex.Message.ToString()); }
    }
      public static void nextpage(Object sender, EventArgs e)
    {
       //I want to work with instance name and form there
    }
4

1 に答える 1

1

最も簡単な方法は、TextBox インスタンスをTagLinkLabel コントロールのプロパティにアタッチし、ハンドラーでアクセスすることです。

public static void startpage(Form form)
{
    try
    {
        var Tip = new Label() { Text = "Input instance name",
            Location = new Point(50, 50), AutoSize = true };

        var InstanceInput = new TextBox() { Text = "INSTANCENAME", 
            Location = new Point(100, 70), MaxLength = 1000, Width = 200,
        BorderStyle=BorderStyle.FixedSingle};

        var StartConnection = new LinkLabel() { Text = "Connect", 
            Location = new Point(50, 100), AutoSize = true, Tag = InstanceInput };

        StartConnection.Click += new EventHandler(nextpage);

        Helpers.AddControlsOnForm(form,
            new Control[] {Tip,StartConnection,InstanceInput });

    }
    catch(Exception ex) 
    { MessageBox.Show("Error occured. {0}",ex.Message.ToString()); }
}

public static void nextpage(Object sender, EventArgs e)
{
   var text = ((sender as LinkLabel).Tag as TextBox).Text;
}

いずれにしても、インスタンスをどこかに保存するか (この場合は Tag プロパティ)、フォームの Controls コレクションを検索して目的のコントロールを見つける必要があります。

于 2013-04-28T12:20:03.283 に答える