簡體   English   中英

如何以另一種形式顯示結果?

[英]How to display the result in another form?

我是c#編碼的新手。 我想知道如何將字符串str1的值傳遞給另一個表單,並從下面的代碼中以另一種窗體形式顯示它。 好吧,我可以在消息框中顯示為“MessageBox.Show(str1);” 但我想傳遞str1的值並以另一種形式顯示它。

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();
    }


}

}

一個好的解決方案是在第二種形式的構造函數中發送字符串。 此外,您可以在第二個表單中放置標簽並將字符串保存在該標簽中:

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;
    }
}

從第一種形式我稱為第二種形式:

 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();
    }
}

希望能幫助到你。

您可以在第二個表單上聲明一個將在第一個表單上設置的變量:

在第二個表單(將收到郵件的表單)上添加此項

public string strVariable { get; set; }

然后在第一個表單上,在顯示變量之前聲明變量:

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

加載第二個表單(接收方)后,您可以訪問數據並將其顯示給用戶,在本例中為標簽,例如表單加載時:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM