如何修复错误从用户控件中的主窗体获取数据?
How to fix error get data from main form in user control?
我创建了一个小窗体和一个用户控件,但我不知道如何将数据从数据库的一侧传递到另一个用户控件,按照网上的一些教程,我使用了 (get ;set) 这样的一对。这个:
IN 主窗体
string query = @"select t.Ma_Nvu,t.Ten_Nvu,t.Time_Start,t.Time_End,d.Noi_dung from ToDoList_ListNvu t
left join ToDoList_NoiDungNvu d on t.Ma_Nvu = d.Ma_Nvu
where t.Status like N'Chưa hoàn thành'";
dt = (new Data()).executeQuery(query);
if (dt.Rows.Count == 0)
{
MessageBox.Show("Bạn cần tạo nhiệm vụ trước để vào !", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
ProcessToDoList tdl = new ProcessToDoList();
BunifuTransition trans = new BunifuTransition();
this.PageToDoList.Controls.Add(tdl);
tdl.Location = new Point(0, 0);
tdl.Size = new Size(0, 567);
if (tdl.Width == 0)
{
tdl.Width = 1014;
trans.ShowSync(tdl, false, Bunifu.UI.WinForms.BunifuAnimatorNS.Animation.HorizBlind);
tdl.BringToFront();
}
foreach (DataRow dr in dt.Rows)
{
DataList data = new DataList();
data.Name = dr["Ten_Nvu"].ToString();
data.Time_Start = dr["Time_Start"].ToString();
data.Time_End = dr["Time_End"].ToString();
data.Noi_Dung = dr["Noi_dung"].ToString();
dtaAdd.Add(data);
}
int i = 0;
while (i < dt.Rows.Count)
{
tdl.Name_Nvu = dtaAdd[i].Name;
tdl.Noi_dung = dtaAdd[i].Noi_Dung;
tdl.Time_Start = dtaAdd[i].Time_Start;
tdl.Time_End = dtaAdd[i].Time_End;
if (tdl.CheckOut()==true)
{
i++;
}
}
在用户控件中
public string Name_Nvu
{
get { return _name; }
set { _name = value; }
}
public string Noi_dung
{
get {return _noidung ; }
set {_noidung = value; }
}
public string Time_Start
{
get { return _timestart; }
set { _timestart = value; }
}
public string Time_End
{
get { return _timeend; }
set { _timeend = value; }
}
但是没用。不知道哪里出错了,所以想请教大家,如何将表单数据传递给用户控件呢
我不确定你收到了什么错误消息,但是可以通过这种方式将值从你的表单传递到你的 UC。
在你的User Control
中:
private string _name;
[Category("Custom Props")]
public string custom_name
{
get { return _name; }
set { _name = value; }
}
然后在您的 form
中,您可以通过执行以下操作为用户控件中的 _name
字符串赋值:
myUC test = new myUC(); //Your user control
test.custom_name = dtaAdd[i].Name;
panel1.Controls.Add(test);
我创建了一个小窗体和一个用户控件,但我不知道如何将数据从数据库的一侧传递到另一个用户控件,按照网上的一些教程,我使用了 (get ;set) 这样的一对。这个:
IN 主窗体
string query = @"select t.Ma_Nvu,t.Ten_Nvu,t.Time_Start,t.Time_End,d.Noi_dung from ToDoList_ListNvu t
left join ToDoList_NoiDungNvu d on t.Ma_Nvu = d.Ma_Nvu
where t.Status like N'Chưa hoàn thành'";
dt = (new Data()).executeQuery(query);
if (dt.Rows.Count == 0)
{
MessageBox.Show("Bạn cần tạo nhiệm vụ trước để vào !", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
ProcessToDoList tdl = new ProcessToDoList();
BunifuTransition trans = new BunifuTransition();
this.PageToDoList.Controls.Add(tdl);
tdl.Location = new Point(0, 0);
tdl.Size = new Size(0, 567);
if (tdl.Width == 0)
{
tdl.Width = 1014;
trans.ShowSync(tdl, false, Bunifu.UI.WinForms.BunifuAnimatorNS.Animation.HorizBlind);
tdl.BringToFront();
}
foreach (DataRow dr in dt.Rows)
{
DataList data = new DataList();
data.Name = dr["Ten_Nvu"].ToString();
data.Time_Start = dr["Time_Start"].ToString();
data.Time_End = dr["Time_End"].ToString();
data.Noi_Dung = dr["Noi_dung"].ToString();
dtaAdd.Add(data);
}
int i = 0;
while (i < dt.Rows.Count)
{
tdl.Name_Nvu = dtaAdd[i].Name;
tdl.Noi_dung = dtaAdd[i].Noi_Dung;
tdl.Time_Start = dtaAdd[i].Time_Start;
tdl.Time_End = dtaAdd[i].Time_End;
if (tdl.CheckOut()==true)
{
i++;
}
}
在用户控件中
public string Name_Nvu
{
get { return _name; }
set { _name = value; }
}
public string Noi_dung
{
get {return _noidung ; }
set {_noidung = value; }
}
public string Time_Start
{
get { return _timestart; }
set { _timestart = value; }
}
public string Time_End
{
get { return _timeend; }
set { _timeend = value; }
}
但是没用。不知道哪里出错了,所以想请教大家,如何将表单数据传递给用户控件呢
我不确定你收到了什么错误消息,但是可以通过这种方式将值从你的表单传递到你的 UC。
在你的User Control
中:
private string _name;
[Category("Custom Props")]
public string custom_name
{
get { return _name; }
set { _name = value; }
}
然后在您的 form
中,您可以通过执行以下操作为用户控件中的 _name
字符串赋值:
myUC test = new myUC(); //Your user control
test.custom_name = dtaAdd[i].Name;
panel1.Controls.Add(test);