我有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'由于其保护级别而无法访问。
预先感谢您的帮助。如果您有任何疑问,请首次发布并开始编程。
答案 0 :(得分:1)
该错误描述了自己:TaskTextBox1
是Form1
的私有成员,您不能在另一个类上调用它。将属性添加到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;
谢谢大家的帮助。慢慢弄清楚! :)