首页 > 解决方案 > 如何将文本从 Form1 中的 textBox 传输到 Form2 中的标签

问题描述

正如标题所说,我在传输数据时遇到问题。(我正在使用 vs 2019 windows 窗体)

我尝试按照其他教程的说明和关于 stackOverflow 的问题进行操作,但没有成功。所以请你帮我解决我的问题。我尝试了一些它在代码中的公共静态字符串,但它不起作用。这是我的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace InventoryApp
{
    public partial class login : Form
    {

        SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Tim\source\repos\InventoryApp1\InventoryApp\Database2.mdf;Integrated Security=True");
        public login()
        {
            InitializeComponent();
        }
        public static string User = "";
        private void buttonLogin_Click(object sender, EventArgs e)
        {
            int i = 0;
            SqlCommand cmd = con.CreateCommand();
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "select * from registration where username = '" + txtUsername.Text + "' and password = '" + txtPsw.Text + "'";
            cmd.ExecuteNonQuery();
            DataTable dt = new DataTable();
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(dt);
            i = Convert.ToInt32(dt.Rows.Count.ToString());

            if (i == 0) // če ne vrne ničesar (podatek ne obstaja)
            {
                MessageBox.Show("This Username and Password does not match");
                txtUsername.Text = ""; // resetira polje v prazno
                txtPsw.Text = ""; // resetira polje v prazno
                txtUsername.Focus(); // focus na Username
            }
            else
            {
                User = txtUsername.Text;
                this.Hide();
                home h = new home(); // v mdi shrani index stran (home)
                h.Show(); // prikaže index stran (Home)              
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            if (con.State == ConnectionState.Open)
            {
                con.Close();

            }
            con.Open();
        }

        private void labelX_Click(object sender, EventArgs e)
        {
            this.Close();
            Application.Exit();
        }
    }
}

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Windows.Forms.DataVisualization.Charting;

namespace InventoryApp
{
    public partial class home : Form
    {

        public home()
        {
            InitializeComponent();
        }

        private void ShowNewForm(object sender, EventArgs e)
        {
            /*Form childForm = new Form();
            childForm.MdiParent = this;
            childForm.Text = "Window " + childFormNumber++;
            childForm.Show();*/
        }

        private void OpenFile(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
            openFileDialog.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*";
            if (openFileDialog.ShowDialog(this) == DialogResult.OK)
            {
                string FileName = openFileDialog.FileName;
            }
        }

        private void SaveAsToolStripMenuItem_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog();
            saveFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
            saveFileDialog.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*";
            if (saveFileDialog.ShowDialog(this) == DialogResult.OK)
            {
                string FileName = saveFileDialog.FileName;
            }
        }

        private void ExitToolsStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }

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

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

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

        private void ToolBarToolStripMenuItem_Click(object sender, EventArgs e)
        {
           // toolStrip.Visible = toolBarToolStripMenuItem.Checked;
        }

        private void StatusBarToolStripMenuItem_Click(object sender, EventArgs e)
        {
          //  statusStrip.Visible = statusBarToolStripMenuItem.Checked;
        }

        private void CascadeToolStripMenuItem_Click(object sender, EventArgs e)
        {
            LayoutMdi(MdiLayout.Cascade);
        }

        private void TileVerticalToolStripMenuItem_Click(object sender, EventArgs e)
        {
            LayoutMdi(MdiLayout.TileVertical);
        }

        private void TileHorizontalToolStripMenuItem_Click(object sender, EventArgs e)
        {
            LayoutMdi(MdiLayout.TileHorizontal);
        }

        private void ArrangeIconsToolStripMenuItem_Click(object sender, EventArgs e)
        {
            LayoutMdi(MdiLayout.ArrangeIcons);
        }

        private void CloseAllToolStripMenuItem_Click(object sender, EventArgs e)
        {
            foreach (Form childForm in MdiChildren)
            {
                childForm.Close();
            }
        }

        private void addNewUserToolStripMenuItem_Click(object sender, EventArgs e)
        {
            add_new_user anu = new add_new_user(); //shranim v spremenljivko (add_new_user stran)
            anu.Show(); // odpre stran "add_new_user"
        }

        private void addNewUnitToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Unit un = new Unit(); //shranim v spremenljivko (Unit stran)
            un.Show(); // odpre stran "Unit"
        }

        private void userToolStripMenuItem_Click(object sender, EventArgs e)
        {

        }

        private void addNewProductToolStripMenuItem_Click(object sender, EventArgs e)
        {
            add_product_name apn = new add_product_name(); // iz index strani poveze na okno "Add New Product"

            apn.Show(); // prikaze okno
        }

        private void addNewSupplierToolStripMenuItem_Click(object sender, EventArgs e)
        {
            supplier_info si = new supplier_info(); // iz index strani poveze na okno "Supplier Information"

            si.Show(); // prikaze okno
        }

        private void purchaseFromSupplierToolStripMenuItem_Click(object sender, EventArgs e)
        {
            purchase_product pfs = new purchase_product(); // iz index strani poveze na okno "Purchase Product"            

            pfs.Show(); // prikaze okno
        }

        private void Load_Click(object sender, EventArgs e)
        {
                SqlConnection myConnection = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Tim\source\repos\InventoryApp1\InventoryApp\Database2.mdf;Integrated Security=True");

                string sqlStr = "SELECT product_quantity, product_name from stock ";

                SqlDataAdapter myCommand = new SqlDataAdapter(sqlStr, myConnection); 
                DataSet ds = new DataSet();
                myCommand.Fill(ds);

                DataView source = new DataView(ds.Tables[0]);

                chartStock.DataSource = source;

                chartStock.Series[0].XValueMember = "product_name";
                chartStock.Series[0].YValueMembers = "product_quantity";
                chartStock.DataBind();
        }

        private void buttonAddNewUser_Click(object sender, EventArgs e)
        {
            add_new_user anu = new add_new_user(); //shranim v spremenljivko (add_new_user stran)
            anu.Show(); // odpre stran "add_new_user"
            this.Hide();
        }

        private void buttonAddNewUnit_Click(object sender, EventArgs e)
        {
            Unit un = new Unit(); //shranim v spremenljivko (Unit stran)
            un.Show(); // odpre stran "Unit"
            this.Hide();
        }

        private void buttonAddNewSupplier_Click(object sender, EventArgs e)
        {
            supplier_info si = new supplier_info(); // iz index strani poveze na okno "Supplier Information"
            si.Show(); // prikaze okno
            this.Hide();
        }

        private void buttonAddNewProduct_Click(object sender, EventArgs e)
        {
            add_product_name apn = new add_product_name(); // iz index strani poveze na okno "Add New Product"
            apn.Show(); // prikaze okno
            this.Hide();
        }

        private void buttonPurchaseProduct_Click(object sender, EventArgs e)
        {
            purchase_product pfs = new purchase_product(); // iz index strani poveze na okno "Purchase Product"            
            pfs.Show(); // prikaze okno
            this.Hide();
        }

        private void buttonLogOut_Click(object sender, EventArgs e)
        {

            login l = new login();
            l.Show();
            this.Hide();
        }

        private void labelX_Click(object sender, EventArgs e)
        {
            this.Close();
            Application.Exit();
        }

        private void buttonDashboard_Click(object sender, EventArgs e)
        {

        }

        private void label3_Click(object sender, EventArgs e)
        {

        }

        private void home_Load(object sender, EventArgs e)
        {
            labelUser.Text = login.User;
        }

    }
}

标签: c#winforms

解决方案


看看这篇文章: 如何制作一个适用于多种形式的变量?

我认为上面的链接是你所追求的。

否则...根据这篇文章的标题...如果您只想将文本框文本发送到另一种形式的标签...

在表格 2 的属性中将您的标签设置为公共。

在此处输入图像描述

一旦将修饰符设置为 public,它就可以从自身外部获取值。

接下来在 Form1 中,我将此代码添加到按钮单击事件中。

        private void button1_Click(object sender, EventArgs e)
    {
        this.Hide();
        Form2 frm2 = new Form2();
        frm2.label1.Text = this.textBox1.Text;
        frm2.ShowDialog();
        frm2.Close();
    }

这会将 Form1 文本框中的文本放入 Form2 的标签中。


推荐阅读