重复控制组 - 示例代码?

时间:2013-02-14 06:51:12

标签: vb.net winforms user-interface

我想在VB .NET(使用VS 2012)中创建一个具有以下行为的Windows窗体:

  1. 这是一个用于数据输入的独立桌面应用程序
  2. 所有数据都存储在本地CSV文件中 - 没有数据库&没有编辑以前的数据
  3. 表单允许用户在字段行中输入数据 - 文本框,组合框,日期
  4. 每行是一组数据,对应于CSV文件中的一行数据
  5. 用户可以通过单击[+]或[ - ]按钮添加或删除行 - 每行一对
  6. 我可以轻松构建一个满足1 - 4的应用程序。今天,我可以构建我的应用程序,一次输入并保存一行。

    我现在要做的是将应用程序增强到上面的第5位:

    • 将字段组合在一起(在面板中?) - 我不喜欢为此使用DataGrid;使用一组重复的简单控件看起来更好
    • 添加一组字段(到面板列表?)
    • 删除特定行(字段组)

    当用户点击[保存]时,我会收集表格上收集的所有数据并将其保存到CSV文件中,每组字段一个文件行。

    有没有人有一些示例代码来展示如何做这样的事情?

    有人可以建议对字段进行分组的最佳方法,以便重复这些字段吗?

1 个答案:

答案 0 :(得分:0)

Panel中的每一行控件分组,以便您可以在需要时轻松将它们全部删除,我建议您使用滚动条将另一个Panel中的所有行分组,这样当超出高度的行数不会超出表单的范围。

对于控件的创建和删除,您必须使用AddHandler添加所需的所有属性和处理程序(事件)。您只需要知道新行的位置,只需添加最后一个Panel并添加距离顶部的距离。

删除行时,只需删除Panel并减少后面其余面板的顶部(例如,假设您的表单上只有面板(行)):

Form1.Controls.RemoveAt(iPos)

For i As Integer = iPos To Panel1.Controls.Count - 1
    Form1.Controls(i).Top -= iDistBetween
Next

我希望这可以指导你。