在列表/网格中嵌入控件的最佳方法是什么

时间:2010-06-18 16:38:14

标签: c# winforms .net-2.0

我有一个大约450行的表,我想在图形列表中显示,供用户查看或修改订单项。用户将从组合框中选择选项并选择复选框等。

我找到了一个listview类,它扩展了基本的listview以允许嵌入对象,但是当我将所有行加载到它中时,它看起来有些迟钝。

我过去曾使用过数据格式视图来查看组合框和复选框,但是花了很多时间来投入并运行......不是我的大好处。

我正在寻找sugestions如何以最小的开销实现这一目标。

感谢

c#,vs2008,.net 2.0,system.windows.forms

1 个答案:

答案 0 :(得分:1)

如果每行都有一组复杂的控件,这是最简单的方法。但是,它不会像列表框那样行事;您将无法突出显示您的行或使用键盘导航。

  • 使用公共属性创建一个usercontrol以指向您的行
  • 在表单上绘制一个面板 - 您将在运行时将“row”usercontrol的实例添加到此面板。
  • 将面板设置为autoscroll(还设置属性以使活动控件滚动到视图中)
  • 设置面板的Anchor属性,使其大小与窗口
  • 一致
  • 您可以设置表单的最大/最小大小属性,以便始终显示完整的usercontrol行(必须执行以防止horiz。面板中的滚动条)
  • 有一个添加行的例程
  • 在循环中,创建新的usercontrols,设置其属性,包括数据表中的行
  • 此外,将.Top属性设置为面板的.controls(pnl.controls.count-1),除了您添加的第一个
  • 之外的所有属性。

非常简单,允许复杂的“行”,完成工作。如果你想要类似列表框的功能而没有自己编写代码,有更好的方法可以做到这一点,但你可能不需要这样做。

相关问题