从一种形式调用文本框信息到另一种形式

时间:2018-10-30 21:02:02

标签: c# datatable

我有2种形式:第一种形式具有显示不同任务名称和每个任务花费时间的文本框。第二种形式具有datagridView。使用:

        public void DataTableTest()
    {
        //Create DataTable 
        DataTable dt = new DataTable();
        //Add Columns
        dt.Columns.Add("Task Name", typeof(string));
        dt.Columns.Add("Time Worke (HH:mm:ss)", typeof(string));
        //Add Rows
        dt.Rows.Add();
        dataGridView1.DataSource = dt;
    }

我能够以自己想要的方式获得数据表的布局。我的问题是,我想从textbox.text中提取Form1,以填充数据表的[0][0]单元。像这样:

        //Add Rows
        dt.Rows.Add();
        dt.Rows[0][0] = Form1.tasktextbox1.text;
        dataGridView1.DataSource = dt;

但这不起作用。尝试启动程序时,我从错误列表中获得了以下信息:

  

'TaskTracker.Form1.TaskTextBox1'由于其保护级别而无法访问。

预先感谢您的帮助。如果您有任何疑问,请首次发布并开始编程。

2 个答案:

答案 0 :(得分:1)

该错误描述了自己:TaskTextBox1Form1的私有成员,您不能在另一个类上调用它。将属性添加到Form1

Public string task1text { get { return this.textbox1.text; }}

,然后以其他形式使用它:

dt.Rows[0][0] = Form1.task1text;

答案 1 :(得分:0)

我能够通过以下方式完成此任务:

    public static string task1text;

    public void saveToolStripMenuItem_Click(object sender, EventArgs e)
    {
        task1text = TaskTextBox1.Text;
        ReportForm RF = new ReportForm();
        RF.Show();
    }

在form1上,并在第二种形式上使用Roozbeh的建议:

    dt.Rows[0][0] = Form1.task1text; 

谢谢大家的帮助。慢慢弄清楚! :)