【发布时间】:2021-08-19 20:08:15
【问题描述】:
我对 c# winform (.net framework) 用户控件有问题。
- 我有一个“通知”用户控件,其中包含一个按钮和一些信息。
- 我有一个“今日清单”表格,dinamycal 使用数据库生成 UC。
我不知道如何为按钮创建事件。当我单击一个按钮时,我想从 UC 获取一个信息(标签)。
图片:
UC(我想得到'label2'文本)
生成的 UC
我试过这种方法,但没有:
已编辑:
UC
public event EventHandler<ActionTaskEventArgs> ActionTaskClicked;
private void button1_Click(object sender, EventArgs e)
{
string cardid = label2.Text;
var args = new ActionTaskEventArgs(cardid);
ActionTaskClicked?.Invoke(this, args);
}
public class ActionTaskEventArgs : EventArgs
{
public ActionTaskEventArgs(string taskId)
{
TaskId = taskId;
}
public string TaskId { get; }
}
表格
//UC generating:
if (statusz[i] == "Kiadott")
{
listItems[i] = new notifications();
listItems[i].Title = title[i];
listItems[i].Details = details[i];
listItems[i].Id = id[i].ToString();
listItems[i].Finish = "Ma";
listItems[i].BtnTxt = "Kezdés";
listItems[i].BtnVisible = true;
listItems[i].color = Color.FromArgb(254, 95, 85);
flowLayoutPanel1.Controls.Add(listItems[i]);
listItems[i].ActionTaskClicked += this.ActionTask_Clicked;
}
//
private void ActionTask_Clicked(object sender, notifications.ActionTaskEventArgs e)
{
MessageBox.Show(e.TaskId);
}
有人可以帮帮我吗?
现在我得到一个错误:
void UC_Click(object sender, EventArgs e)
{
//I gave an error for the below row! Can't convert button type to notifications type i guess.
notifications obj = (notifications)sender;
MessageBox.Show(obj.Id);
}
【问题讨论】:
-
如果我生成动态的,如何订阅主窗体中的按钮单击?
-
我不知道我做错了什么,但并没有真正起作用。我也一样,链接中的内容和您写的内容。但是当我点击按钮时,什么都不做。
-
我用新代码更新了问题。
-
我不知道我做错了什么,但现在可以了。非常感谢!
标签: c# winforms button events user-controls