【发布时间】:2021-11-30 21:16:29
【问题描述】:
我创建了一个用户控件,它显示来自 mySQL 数据库的数据(任务主题、日期、时间)。
这个 UserControl 将根据任务的数量被创建多次。
我正在像这样创建 UserControl:
taskSubjectPanel.Controls.Clear();
DataTable taskdata = new DataTable();
sql.Connect("JonasW");
taskdata = sql.GetTasks(username);
sql.Disconnect();
if(taskdata.Rows.Count>0)
{
for (int i = 0; i < taskdata.Rows.Count; i++)
{
taskSubjectPanel.Controls.Add(new TaskSubject(taskdata.Rows[i][0].ToString(),
taskdata.Rows[i][1].ToString(),
taskdata.Rows[i][2].ToString(),
taskdata.Rows[i][3].ToString(),
taskdata.Rows[i][4].ToString(),
taskdata.Rows[i][5].ToString(),
taskdata.Rows[i][6].ToString()));
}
}
taskSubjectPanel.Refresh();
它被添加到流程布局面板中。 我创建了一个公共事件和一个公共数据表,我希望在单击 UserControl 时可以访问:
public event EventHandler TaskSubjectClick;
public DataTable taskdata;
这就是触发公共事件的地方:
private void RedirectMouseClick(object sender, EventArgs e)
{
sql.Connect("JonasW");
taskdata = sql.GetTaskData(absenderSQL, empfaengerSQL, subjectText.Text,
messageSQL,
dateText.Text, timeText.Text, finishedSQL);
sql.Disconnect();
this.TaskSubjectClick(this, e);
}
因为它没有名字,我如何访问事件和数据表?。
【问题讨论】:
-
将您的代码分成两部分,并将您的
TaskSubject实例实际分配给一个局部变量,以便您可以连接其事件并将其添加到 FlowLayoutPanel。
标签: c# winforms user-controls