创建一个自定义列表框

本文关键字:自定义 列表 一个 创建 | 更新日期: 2023-09-27 18:11:47

如果我想通过继承listbox类并重写一些函数来创建自定义列表框,我应该创建用户控件还是自定义控件?我读到我应该使用用户控件,但是当我添加用户控件时,它会在设计器中附带一个我无法删除的面板控件,而自定义控件是空白的,我可以将任何东西拖到它上面。

当我尝试将public partial class UserControl1 : UserControl更改为用户控件的public partial class UserControl1 : ListBox时,VS不添加AutoScaleModeAutoScaleDimensions等属性。

创建一个自定义列表框

UserControl是一个容器控件。它不是"自带"面板——它一种"面板"(但不是面板-那只是一个空的ContainerControl)。所以你可以定位它们。自定义控件只是从control派生出来的,你可以在代码中创建和定位东西,尽管通常你不会在一个简单的control中有子控件。

至于从ListBox继承,你必须自己添加这些属性,除非我完全误解了。

顺便说一下,如果你只需要在ListBox中绘制自定义元素,而不需要改变功能,可以考虑使用owner-drawing来代替ListBox。网上有很多这样的例子