2013-02-14 68 views
1

我想創建VB .NET(使用VS 2012)Windows窗體有此行爲:重複控件組 - 示例代碼?

  1. 它是數據輸入一個獨立的桌面應用程序
  2. 所有數據都存儲在本地CSV文件 - 沒有數據庫&以前沒有數據的編輯
  3. 形式允許用戶在字段行中輸入數據 - 文本框,組合框,日期
  4. 每一行都是一組數據和對應一行CSV文件中的數據
  5. 用戶可以通過單擊[+]或[ - ]按鈕添加或刪除線條 - 每行一對

我可以輕鬆構建滿足1-4的應用程序。今天,我可以構建我的應用程序以進入並且一次只保存一行。

我想現在要做的是提升之上的應用,以數字5:

  • 組領域在一起 - 我不喜歡用這個一個DataGrid(在面板?)它看起來更好地使用重複一套簡單的控制
  • 添加一組字段(到面板的名單?)
  • 刪除特定行(田組)

當用戶點擊[保存],然後收集表單上收集的所有數據並將其保存到CSV文件中,每個字段組一個文件行。

有沒有人有一些示例代碼來展示如何做這樣的事情?

有人可以建議最好的方法來分組字段,以便他們可以重複?

+0

我建議製作一個包含您需要的控件的用戶控件,並在每行添加一個這樣的控件。然後,您可以使用自動滾動功能將這些表單停靠在面板上。 – 2013-02-14 08:13:56

回答

0

集團,需要在一個Panel控制每一行,因此您可以輕鬆地將它們全部刪除在一起的時候,我建議你到組中的另一個Panel帶有滾動條都行,所以當行數超過高度犯規在表單的邊界之外創建。

而對於控件的創建和刪除,您必須用dinamically來完成,將所有需要的屬性和處理程序(事件)添加到AddHandler。您只需要知道新行的位置,只需添加最後的Panel並添加頂部的距離即可。

和刪除行時,只是刪除Panel,降低面板背後的其餘部分的頂部(例如假設你只有在窗體上面板(行)):

Form1.Controls.RemoveAt(iPos) 

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

我希望這可以指導你。

+0

感謝您的回覆。這看起來像很多工作。任何人都有一些示例代碼? – haryadoon 2013-02-19 03:46:12