2010-06-18 68 views
0

我有一张约450行的表格,我希望在图形列表中显示供用户查看或修改行项目的表格。用户将是从组合框选择选项和选择复选框等。将控件嵌入到列表/网格中的最佳方式

我发现了一个listview类,它扩展了基本的listview以允许嵌入对象,但是当我将所有行加载到它时,它似乎有点呆板。

我已经使用过datagridview组合框和复选框,但有很多时间投入到启动和运行...不是我的大喜。

我在寻找sugestions如何以最小的开销做到这一点。

感谢

C#,VS2008,.NET 2.0,System.Windows.Forms的

回答

1

如果你有每行一组复杂的控制,这是做到这一点的最简单方法。但是,它不会像列表框那样工作。您将无法突出显示行或使用键盘进行导航。

  • 创建具有公共属性用户控件指向您行
  • 画出你的窗体上的面板 - 你会在运行时添加的“行”用户控件的实例来此面板。
  • 设置面板自动滚动(也设置属性,使主动控制滚动到视图)
  • 设置面板的锚属性,因此它长w /窗口
  • 您可以设置窗体的最大/最小尺寸属性,以便完整的用户控件行总表(必须做的,以防止面板HORIZ。滚动条)
  • 有一个常规添加的行
  • 在一个循环中,创建新的用户控件,设置其属性,包括在数据表中的行
  • 此外,将.Top属性设置为面板的.controls(pnl.controls.count-1)但你添加的第一个

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

+0

+1您可以将每个行控件停靠在顶部,然后通过将它们放在前面/将它们发送回去对其进行重新排序。 – dlras2 2010-06-18 17:07:47

相关问题