将在一个表单中输入的数据显示到另一个表单

本文关键字:表单 输入 数据 显示 另一个 一个 | 更新日期: 2023-09-27 18:01:24

我想要另一个表单从一个表单的列表框中显示选中的项目到另一个表单的富文本框,打开按钮单击。我在表单1中使用了以下代码片段来显示消息框中的内容,但现在我想要另一个表单。需要帮助…

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace cities
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {

            StringBuilder message = new StringBuilder();
            foreach (object selectedItem in listBox1.SelectedItems)
            {
               message.Append(selectedItem.ToString() + Environment.NewLine);
            }
            MessageBox.Show("You selected: 'n" +message.ToString());         

        }
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
        }
    }
}

将在一个表单中输入的数据显示到另一个表单

我使用下面的代码来实现我想要的。它做得很好!:)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace cities
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {

            StringBuilder message = new StringBuilder();

            foreach (object selectedItem in listBox1.SelectedItems)
            {
               message.Append(selectedItem.ToString() + Environment.NewLine);
            }
            MessageBox.Show("Your Selected Cities :'n" + message.ToString() + "'n");
            Form2 childForm = new Form2();
            childForm.Controls["richTextBox1"].Text = message.ToString();
            childForm.Show();
        }
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
        }
    }
}

从第一个表单开始就像这样调用第二个表单

Form2 ob = new Form2(message);
ob.show();

这是设置消息

的第二个表单
  public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
            public Form2(String message)
            {
                InitializeComponent();
                richTextBox1.Text = message;
            }
            private void Form2_Load(object sender, EventArgs e)
            {
            }
        }

在form1中创建一个公共属性,在get中返回一个字符串,使用与循环和字符串生成器相同的逻辑组合字符串。

打开form2时,调用form2的方法,该方法接受字符串,如SetMessage并传递form1。消息发送给已创建的方法。

这是一种无需让表单依赖于其内部控件即可获得所需内容的方法,因此,只要编辑几个方法/属性,替换控件也不会中断。

在第二个form中创建一个方法:

public void SetRichTextboxText(string text)
{
     richTextBox1.Text = text;
}

然后在第一个表单中添加以下代码:

private void button1_Click(object sender, EventArgs e)
 {
     StringBuilder message = new StringBuilder();
     foreach (object selectedItem in listBox1.SelectedItems)
     {
          message.Append(selectedItem.ToString() + Environment.NewLine);
     }
     var form = new Form2();
     form.SetRichTextboxText(message.ToString());
     form.Show(this);
}

在表单2中,您必须为richtextbox添加消息的属性:

private string _message = string.Empty;
    public string message
    {
        get { return _message; }
        set { _message = value; }
    }

表格1:

  private void button1_Click(object sender, EventArgs e)
    {
        StringBuilder message = new StringBuilder();
        foreach (object selectedItem in listBox1.SelectedItems)
        {
           message.Append(selectedItem.ToString() + Environment.NewLine);
        }
        Form2 objForm2 = new Form2();
        objForm2.message = message.ToString();
        objForm2.ShowDialog();

}

表单2页面加载:

    private void Form2_Load(object sender, EventArgs e)
    {
        richTextBox1.Text = message;
    }