[英]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.