C# 需要.NET Windows窗体中自定义列表控件的设计建议

C# 需要.NET Windows窗体中自定义列表控件的设计建议,c#,.net,winforms,C#,.net,Winforms,首先,这里有一些关于自定义列表控件外观的概念图: 每个列表项都相当复杂,当鼠标悬停在上面时,它们会变成一个“编辑界面”。我也有PNG图像文件,用于这个东西的每个蒙皮细节,包括滚动条 什么是开始实施此功能的最佳方法?我会创建一个自定义控件并简单地在中呈现所有这些吗 我可以用滚动条将列表控件设置为透明的剪辑区域吗?对于单个列表项,我是否会简单地使用纹理面板作为每个项的背景,并将现有的.NET表单(如组合框、按钮、编辑字段等)作为子项 我以前从未创建过如此详细的控件。如果你想让控件看起来与给定的图片

首先,这里有一些关于自定义列表控件外观的概念图:

每个列表项都相当复杂,当鼠标悬停在上面时,它们会变成一个“编辑界面”。我也有PNG图像文件,用于这个东西的每个蒙皮细节,包括滚动条

什么是开始实施此功能的最佳方法?我会创建一个自定义控件并简单地在中呈现所有这些吗

我可以用滚动条将列表控件设置为透明的剪辑区域吗?对于单个列表项,我是否会简单地使用纹理面板作为每个项的背景,并将现有的.NET表单(如组合框、按钮、编辑字段等)作为子项


我以前从未创建过如此详细的控件。

如果你想让控件看起来与给定的图片一模一样(很好),那么你最终会自己画出大部分,如果不是全部的话。一种可能性是对正在使用的每个控件进行子类化,并重写
OnPaint
方法来进行自定义绘图。这假设设计中图片中的所有内容都是单个控件

我自己可能会使每一行成为一个独立的
UserControl
派生类,可能带有一个内部构造函数,这样控件的用户就不能直接创建行。在您的
skindlistrow
类(或任何名称)中,您可以拥有每个子角色。从外观上看,该行包含三个显示数字的控件和一个显示任何类型文本的控件

对于编辑部分,派生另一个
UserControl
,其中包含您所绘制的所有控件。显示控件和编辑控件都属于上面的
skindlistrow
,因此它知道如何将数据从一组加载到另一组


你面前有很多工作要做,但你的想法看起来不错。祝你好运。

谢谢你的建议。我的Skindlist课程会用什么?我不确定如何实现剪辑和滚动条。您可以从查看ListView开始。虽然相当基本,但它支持的项目本质上可以是图形化的,支持列(您的图像显示),应该是一个非常好的起点。