如何修复错误从用户控件中的主窗体获取数据?

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);