如何以另一种forms显示结果?

我是C#编码的新手。 我想知道如何将stringstr1的值传递给另一个窗体,并从下面的代码显示在另一个窗体中。 那么我可以显示它在一个消息框中作为“MessageBox.Show(str1);” 但我想传递str1的值,并以另一种forms显示它。

enter code here <pre> <code> using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using System.Runtime.InteropServices; using MyExcel = Microsoft.Office.Interop.Excel; using System.Windows.Forms; using static System.Windows.Forms.VisualStyles.VisualStyleElement; using Microsoft.Vbe.Interop; using System.Diagnostics; 

命名空间贷款{

 public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { OpenFileDialog fdlg = new OpenFileDialog(); fdlg.Title = "Select an Excel File"; fdlg.InitialDirectory = @"d:\test"; fdlg.Filter = "All files (*.*)|*.*|All files (*.*)|*.*"; fdlg.FilterIndex = 2; fdlg.RestoreDirectory = true; if (fdlg.ShowDialog() == DialogResult.OK) { MessageBox.Show("selected file is :" + fdlg.FileName); } MyExcel.Application xlApp; MyExcel.Workbook xlWorkBook; MyExcel.Worksheet xlWorkSheet; MyExcel.Range range; string cellValue; int rCnt; int cCnt; int rw = 0; int cl = 0; Loans.Form2 frm = new Loans.Form2(); xlApp = new MyExcel.Application(); xlWorkBook = xlApp.Workbooks.Open(@fdlg.FileName, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); xlWorkSheet = (MyExcel.Worksheet)xlWorkBook.Worksheets.get_Item(1); range = xlWorkSheet.UsedRange; rw = range.Rows.Count; cl = range.Columns.Count; //MessageBox.Show("Working"); for (rCnt = 1; rCnt <= rw; rCnt++) { for (cCnt = 1; cCnt <= cl; cCnt++) { string str = Convert.ToString((range.Cells[rCnt, "N"] as MyExcel.Range).Value2); if (str == "3" || str == "4" || str == "5" || str == "6" || str == "7") { string str1 = Convert.ToString((range.Cells[rCnt, cCnt] as MyExcel.Range).Value2); MessageBox.Show(str1); //want to display the values //of str1 in a seperate form } } } xlWorkBook.Close(true, null, null); xlApp.Quit(); Marshal.ReleaseComObject(xlWorkSheet); Marshal.ReleaseComObject(xlWorkBook); Marshal.ReleaseComObject(xlApp); } public void Show(string text) { this.Show(); } private void Form1_Load(object sender, EventArgs e) { InitializeComponent(); } } 

}

一个好的解决方法是在第二个表单的构造函数中发送string。 另外,您可以在第二个表单中放置一个标签,并将该string保存在该标签中:

 public partial class Form2 : Form { private string _stringToShow; public Form2(string stringToShow) { _stringToShow = stringToShow; InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { label1.Text = _stringToShow; } } 

从第一种forms我叫第二种forms:

  public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { List<string> Ll = new List<string>() { "one", "two", "three" }; string concatenate = string.Join(" ", Ll.ToArray()); new Form2(concatenate ).Show(); } } 

希望能帮助到你。

你可以在第二个表单上声明一个variables,这个variables将被设置在你的第一个表单上:

将其添加到您的第二个表单(将收到该消息的表单)

 public string strVariable { get; set; } 

然后在你的第一个表单上,在显示variables之前声明variables:

  Form2 frm = new Form2(); frm.strVariable = "Hello World"; frm.Show(); 

在加载第二个表单(接收方)时,您可以访问数据并将其显示给用户,在这种情况下,例如在表单加载时显示一个标签:

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