我創建了一個用戶控制元件,它顯示來自 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);
}
因為它沒有名字,我如何訪問事件和資料表?。
uj5u.com熱心網友回復:
要創建自定義事件:
public delegate void TaskSubjectClick(DataTable taskdata);/*<- Put all data you want to pass here*/
public event TaskSubjectClick TaskSubjectClickEvent;
要呼叫該事件,您必須使用 invoke:
TaskSubjectClickEvent.Invoke(yourdatatable); //Invoke the event and add your data you want to pass
在您的 Mainform 中,您必須按如下方式添加事件:
yourUserControl.TaskSubjectClickEvent = MainForm_TaskSubjectClickEvent;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/315637.html
上一篇:檢查重復隨機輸出的更有效方法?
