如何以另一种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; }