[英]C# How do i add click event on context sub menu each dynamically
大家好,我在創建子菜單的單擊菜單時遇到問題,通常我可以將其投射到其每個屬性上,但是我的子菜單來自數據庫,我不知道如何添加硬編碼的單擊事件
到目前為止我的代碼
void loadTechnicianData()
{
TechnicianPanel.Controls.Clear();
query = "SELECT * FROM `tbl_technician`";
using (MySqlConnection conn = constrings.GetDBConnection())
{
try
{
conn.Open();
using (MySqlCommand cmd = new MySqlCommand(query, conn))
{
using (MySqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
Tech_UC uc = new Tech_UC();
uc.TechHeader.Text = reader["technician"].ToString();
uc.TechHeader.BackColor = Color.FromName(reader["color_assigned"].ToString());
uc.id = Convert.ToInt32(reader["t_id"].ToString());
TechnicianPanel.Controls.Add(uc);
ToolStripMenuItem cm = startToolStripMenuItem as ToolStripMenuItem;
cm.DropDownItems.Add(reader["technician"].ToString());
//here i need to call a click event to call a method void outside the loop
}
}
}
}
catch (Exception ex)
{
CMessageBox m = new CMessageBox("error\n" + ex);
m.ShowDialog();
}
finally
{
conn.Close();
}
}
}
嘗試這個:
cm.DropDownItems.Add(reader["technician"].ToString()).Click += MyMethod;
附:
void MyMethod(object sender, EventArgs e);
如果簡短且不可重用,則可以使用委托或lambda表達式代替方法:
cm.DropDownItems.Add(reader["technician"].ToString()).Click += (_sender, _e) =>
{
...
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.