[英]how create a datagrid with panel dynamically?
我是法国人,很抱歉我的英语不好...但我希望你能帮助我;)
我正在用 C# 开发一个软件,在数据库中有很多信息存储,比如关于人的信息。
我想用漂亮的 UI 显示这些信息,如下所示:
为此,我创建了:
我做了一个循环,对于每个人,我用每个人的信息调用一个方法“createPanel”,并将这些创建的子面板添加到父面板中。 每个人的 ID 存储在子面板的“标签”参数中。
一切正常,但我真的不知道如何在每个子面板中添加事件。 正如您在上面的链接中看到的,用户可以单击书签或图标以显示菜单(带有 3 点的圆形 = 图标“菜单”)。
我的问题是如何为每个子面板动态添加事件? 例如,当我单击“菜单”图标时,我想为每个子面板显示一个菜单,在子面板的“标签”中获取 id 存储,并显示一个用于管理信息的新表单。
感谢您的帮助,如有必要,我可以添加我的代码:)
为要显示的面板创建自己的用户控件,其中包含您需要的工具箱中的所有控件。
public partial class MyControl : UserControl
{
...
}
在“MyControl”中,您为所有可能发生且必须在控件外部处理的事件定义事件。 与组合框的“SelectedIndexChanged”相同。
您的控件类将如下所示:
public partial class MyControl : UserControl
{
public event EventHandler<MyImportantEventA> OnImportantThingHappend;
//Event-Invoker
protected virtual void OnOnImportantThingHappend(MyImportantEventA e)
{
OnImportantThingHappend?.Invoke(this, e);
}
}
//Data of your event. Customize as you like/need.
public class MyImportantEventA : EventArgs
{
public string Message { get; set; }
}
动态添加控件时,绑定到控件的事件:
myUserControl.OnImportantThingHappend += DoSomethingWithEvent;
控件可以自行处理的事情,不需要作为事件公开。 例如:
“关闭”可能是必须在外部处理的事情。 您需要删除控件,重新排列控件等。
“显示详细信息”可能是可以完全在您的控制范围内处理的内容。 您的控件会显示一个消息框或精美的工具提示。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.