C# 在窗体之间传递txtBox值

C# 在窗体之间传递txtBox值,c#,C#,我经常遇到这个问题,我想我需要了解它是如何工作的,我有FormMain(我的主窗体)和第二个窗体(FormAddUrls),当我打开form2(FormAddUrls)时,我想将multitextbox值传递回主窗体(FormMain) 我知道,在VB中,这就像说:FormMain.txtBoxUrls.Text=finalOutput但在C#中没有那么容易 (form1)-FormMain using System; using System.Collections.Generic; usin

我经常遇到这个问题,我想我需要了解它是如何工作的,我有FormMain(我的主窗体)和第二个窗体(FormAddUrls),当我打开form2(FormAddUrls)时,我想将multitextbox值传递回主窗体(FormMain)

我知道,在VB中,这就像说:FormMain.txtBoxUrls.Text=finalOutput但在C#中没有那么容易

(form1)-FormMain

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Windows.Forms;
using WraithProjectCreator;
using IronPdf;
using System.Text;

namespace GSAProjectCreator
{
    public partial class FormMain : Form
    {
        private IniParser m_Parser = null;

        public FormMain()
        {
            InitializeComponent();
        }

        private void btnShowUrlsForm_Click(object sender, EventArgs e)
        {
            FormAddUrls fau = new FormAddUrls();
            fau.Show();
        }

     }
}
(格式2)-格式URL

using GSAProjectCreator;
using System;
using System.Text;
using System.Windows.Forms;

namespace WraithProjectCreator
{
    public partial class FormAddUrls : Form
    {
        public FormAddUrls()
        {
            InitializeComponent();
        }

        private void btnAddUrls_Click(object sender, EventArgs e)
        {
            StringBuilder builder = new StringBuilder();
            builder.Append("{");
            foreach (string line in txtBoxURLsMass.Lines)
            {
                //Helpers.returnMessage(line);
                builder.Append(line + "|");
            }
            builder.Append("}");
            string finalOutput = "";
            if (builder.ToString().Contains("|}")) {
                finalOutput = builder.ToString().Replace("|}", "}");
            }
            //FormMain.txtBoxUrls.Text = finalOutput;
            this.Close();
        }

    }
}

我已经使用了很多form1的代码来保留基本结构,我正在尝试将finalOutput从form2传回form1(txtBoxUrls.Text)文本框,如果您有任何帮助,我们将不胜感激。

这取决于您想如何使用主表单-您可以设置一个静态属性(这将更新所有主窗体实例的文本)

如果您只有一个主窗体,并且在创建FormAddUrls对象时有对它的引用,那么您只需更改构造函数以接受主窗体(或尽可能通用的类型),将引用存储为字段,并在单击按钮时更新其属性:

 public partial class FormAddUrls : Form
 {
     private readonly Form _parentForm;
     public FormAddUrls(MainForm parent)
     {
         _parentForm = parent;
         InitializeComponent();
     }

     private void btnAddUrls_Click(object sender, EventArgs e)
     {
         StringBuilder builder = new StringBuilder();
         builder.Append("{");
         foreach (string line in txtBoxURLsMass.Lines)
         {
             //Helpers.returnMessage(line);
             builder.Append(line + "|");
         }
         builder.Append("}");
         string finalOutput = "";
         if (builder.ToString().Contains("|}")) {
             finalOutput = builder.ToString().Replace("|}", "}");
         }
         if(_parentForm != null)
             _parentForm.txtBoxUrls.Text = finalOutput;
         this.Close();
     }

 }