1

この動作を持つ VB .NET (VS 2012 を使用) で Windows フォームを作成したい:

  1. データ入力用のスタンドアロン デスクトップ アプリケーションです。
  2. すべてのデータはローカルの CSV ファイルに保存されます - データベースや以前のデータの編集はありません
  3. フォームでは、ユーザーはフィールドの行にデータを入力できます - テキスト ボックス、コンボ ボックス、日付
  4. 各行はデータのセットであり、CSV ファイルのデータ行に対応します
  5. ユーザーは [+] または [-] ボタンをクリックして行を追加または削除できます - 行ごとに 1 ペア

1 ~ 4 を満たすアプリを簡単に作成できます。今日、一度に 1 行だけ入力して保存するアプリを作成できました。

私が今やりたいことは、アプリケーションを上記の 5 に拡張することです。

  • フィールドをグループ化 (パネル内?) - これに DataGrid を使用するのは好きではありません。シンプルなコントロールの繰り返しセットを使用する方が良さそうです
  • フィールドのグループを追加します (パネルのリストに?)
  • 特定の行 (フィールドのグループ) を削除する

ユーザーが [保存] をクリックすると、フォームで収集されたすべてのデータが収集され、フィールドのグループごとに 1 つのファイル行で CSV ファイルに保存されます。

このようなことを行う方法を示すサンプルコードはありますか?

フィールドをグループ化して繰り返すことができるようにする最良の方法を誰かが提案できますか?

4

1 に答える 1

0

コントロールの各行を でグループ化するPanelと、必要に応じてすべての行をまとめて簡単に削除できます。すべての行Panelをスクロール バーで別の行にグループ化することをお勧めします。行数が高さを超えても、形。

また、コントロールの作成と削除については、必要なすべてのプロパティとハンドラー (イベント) を .xml で追加して、動的に行う必要がありますAddHandler。新しい行の位置を知る必要があるだけです。最後Panelに追加された行を取得して、上からの距離を追加するだけです。

行を削除するときは、 を削除して、Panel後ろにある残りのパネルの上部を減らします (フォームにパネル (行) しかない場合の例):

Form1.Controls.RemoveAt(iPos)

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

これがあなたを導くことができることを願っています。

于 2013-02-14T09:01:42.520 に答える