Supponiamo che
- da Form1 tu voglia aprire Form2
- in Form1 c'è un textbox txtVarDaPassare con una stringa da passare a txtVar di Form2
- in Form2 modifichi la stringa passata e la restituisci a Form1, in txtVarDaPassare


In Form1:

codice:
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void cmdApriForm2_Click(object sender, EventArgs e)
        {
            Form2 newform = new Form2();
            newform.MyVar = txtVarDaPassare.Text;
            newform.ShowDialog();

            // Leggo il valore restituito alla chiusura di Form2
            txtVarDaPassare.Text = newform.MyVar;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            txtVarDaPassare.Text = "ECCOMI"; 
        }
    }
in Form2:
codice:
    public partial class Form2 : Form
    {
        public string MyVar;
        public Form2()
        {
            InitializeComponent();
        }

        private void cmdOK_Click(object sender, EventArgs e)
        {
            MyVar = txtVar.Text;
            Dispose();
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            txtVar.Text = MyVar; 
        }
    }
Mi pare che così dovrebbe andare, più o meno.

Ciao