如果我想通过继承ListBox类并覆盖某些函数来创建自定义列表框,我应该创建用户控件还是自定义控件?我已经读过我应该使用用户控件但是当我添加一个用户控件时,它在设计器中带有一个我无法删除的面板控件,而自定义控件是空白的,我可以拖动它。
当我尝试将public partial class UserControl1 : UserControl
更改为用户控件的public partial class UserControl1 : ListBox
时,VS不会添加AutoScaleMode
和AutoScaleDimensions
等属性。
答案 0 :(得分:2)
UserControl是一个容器控件。它没有“附带”一个面板 - 它是一种“面板”(但不是面板 - 这只是一个空的ContainerControl)。所以你可以定位它们。自定义控件只是从Control派生而来,你可以在代码中创建和定位事物,但通常你不会在一个简单的Control中有子控件。
至于继承ListBox,你必须自己添加这些属性,除非我完全误解。
顺便说一句,如果您只需要在ListBox中绘制自定义元素,而不是更改功能,请考虑使用所有者绘制ListBox。互联网上有很多例子。