Windows Forms c#在运行时添加函数到一个新的Listbox
Posted
技术标签:
【中文标题】Windows Forms c#在运行时添加函数到一个新的Listbox【英文标题】:Windows Forms c# Add functions to an new Listbox under runtime 【发布时间】:2021-07-22 19:31:36 【问题描述】:我是 C# Windows 窗体的初学者。我试图用谷歌搜索,但不确定我是否理解这是怎么可能的。我想在运行时创建一个列表框,并成功地制作了一个这样的:
private void button3_Click(object sender, EventArgs e)
ListBox lb = new ListBox();
lb.AllowDrop = true;
lb.FormattingEnabled = true;
lb.Size = new System.Drawing.Size(200, 100);
lb.Location = new System.Drawing.Point(100, 250);
this.Controls.Add(lb);
但我的列表框还需要函数中的条件,我想在设计器中添加代码以将这些也添加到列表框。例如,我想添加这样的功能:
lb.DragEnter += new System.Windows.Forms.DragEventHandler(this.lb_DragEnter);
and
private void lb_DragEnter(object sender, DragEventArgs e)
if (e.Data.GetDataPresent(typeof(System.String)))
e.Effect = DragDropEffects.Move;
else
e.Effect = DragDropEffects.None;
我希望我能清楚地解释我的问题!
【问题讨论】:
您是在问如何在代码中订阅事件吗?那是very basic stuff。 您好,感谢您提供链接和反馈。祝你有美好的一天,亲切的问候 【参考方案1】:欢迎加入。
我可能误解了你想要做什么,但你不能在你的 button3_Click 方法中添加事件吗?
private void button3_Click(object sender, EventArgs e)
ListBox lb = new ListBox();
lb.AllowDrop = true;
lb.FormattingEnabled = true;
lb.Size = new System.Drawing.Size(200, 100);
lb.Location = new System.Drawing.Point(100, 250);
// Your event
lb.DragEnter += new System.Windows.Forms.DragEventHandler(this.lb_DragEnter);
this.Controls.Add(lb);
private void lb_DragEnter(object sender, DragEventArgs e)
if (e.Data.GetDataPresent(typeof(System.String)))
e.Effect = DragDropEffects.Move;
else
e.Effect = DragDropEffects.None;
【讨论】:
嗨,感谢您的快速回答,它的工作!我之前尝试过类似的东西,但我一定错过了一些东西,当我尝试时我错过了参考。但是您的解决方案运行良好。非常感谢。以上是关于Windows Forms c#在运行时添加函数到一个新的Listbox的主要内容,如果未能解决你的问题,请参考以下文章
在 Parallels 8 中的 Windows 7 上运行 C# Windows Forms 应用程序错误
C# Windows Forms Spotify API 用户授权