首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问表单2中的公共变量

访问表单2中的公共变量
EN

Stack Overflow用户
提问于 2014-09-15 13:52:10
回答 4查看 54关注 0票数 0

我正在尝试开发一个windows窗体应用程序。在这里,我想同时调用form 1和form 2的变量。我将vale转换为ComputerId变量。

代码语言:javascript
复制
namespace ComData
{
    public partial class addnew : Form
    {
        string ConnString = "Server=localhost;Database=machinedetails;UID=root;Encrypt=true;";
        public int ComputerId { get; set; } 

        public addnew()
        {
            InitializeComponent();
        }

        private void btnnext_Click(object sender, EventArgs e)
        {
            using (MySqlConnection conn = new MySqlConnection(ConnString))
            {
                using (MySqlCommand comm = new MySqlCommand())
                {
                    if (this.txtbranch.Text != "" && this.txtcostcenter.Text != "")
                    {
                        try
                        {
                            MySqlParameter branchparam = new MySqlParameter("@branch", MySqlDbType.VarChar, 16);
                            MySqlParameter costcenterparam = new MySqlParameter("@costcenter", MySqlDbType.VarChar, 16);

                            comm.Connection = conn;
                            conn.Open();
                            comm.CommandText = "INSERT INTO computerdetails(branch,costcenter) VALUES (@branch, @costcenter);Select last_insert_id();";
                            comm.Parameters.Add(branchparam);
                            comm.Parameters.Add(costcenterparam);
                            comm.Prepare();

                            String branch = txtbranch.Text;
                            String costcenter = txtcostcenter.Text;

                            comm.Parameters[0].Value = branch;
                            comm.Parameters[1].Value = costcenter;

                            MySqlDataReader reader = comm.ExecuteReader();
                            if (reader.HasRows)
                            {
                                reader.Read();
                                ComputerId = Convert.ToInt32(reader[0]);
                                MessageBox.Show("value is" + ComputerId);
                            }



                            this.Hide();
                            newdetails nd = new newdetails();
                            nd.ShowDialog();
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Please fill the values");
                    }
                }
            }
        }
    }
}

我想知道如何在Form2中调用这个ComputerId变量。请帮助我。谢谢..

EN

回答 4

Stack Overflow用户

发布于 2014-09-15 14:01:12

此代码块属于打开addnew-form的form2

代码语言:javascript
复制
addnew testObj = new addnew(); //init
testObj.show() //or testObj.showDialog();
int id = testObj.ComputerId; //getting the id
票数 0
EN

Stack Overflow用户

发布于 2014-09-15 14:08:15

您可以将参数化构造函数添加到newdetails窗体。然后将整数值传递到那里。如下所示:

代码语言:javascript
复制
// In newdetails form

private int computerId;

public newdetails(int compId){
computerId = compId;
}

// in addnew form
newdetails nd = new newdetails(ComputerId);
票数 0
EN

Stack Overflow用户

发布于 2014-09-15 14:13:02

在newdetails表单中:

代码语言:javascript
复制
private addNew _addNew { get; set; }

public newdetails(addNEw parent)
{
    InitializeComponent();
    _addNew = parent; 
}

//you can access any public variable at addNew form with:
int test = _addNew.PublicVariableName

在addnew表单中:

代码语言:javascript
复制
newetails x = new newdetails(this);
x.Show();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25841580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档