0

ユーザーが製品のリストに対していくつかの在庫修正を入力できるようにするWinformアプリがあり、それらの修正ごとにデータベースレコードが作成されます。

コンボボックスを使用して、各アイテムを順番に選択する必要があるようにしました。うまく機能しますが、ユーザーフレンドリーではありません。理想的には、製品のリストに空の列があり、修正を入力して [送信] をクリックすれば完了です。

私はdatagrdiviewを使って見ました。商品一覧は作れますが、「エントリー欄」の作り方がわかりません。

進むべき道について何か提案はありますか?

乾杯、麻痺

編集

これは、コードを表示せずにできるだけ明確にするためにやりたいことのモックアップです...

私が欲しいもののサンプル

4

1 に答える 1

1

「送信」ボタンを使用して新しい在庫修正を保存する場合、アプローチは次のようになります。

-在庫修正のために製品名と空のセルを使用してデータグリッドビューを作成します

-[送信]ボタンをクリックした後、[修正]列の値を読み取り、値が存在する場合はデータベースを更新します…</ p>

ここでそれを行う方法は次のとおりです。

DesignerでdatagridviewをdgvProductCorrections作成してから、このdatagridview dgvProductCorrection_Productとで2つの列をdesignerで作成しますdgvProductCorrection_Correction。この(またはあなたの)列名をColumn.Nameプロパティに入れます

次に、プロパティ.Nameが存在するクラスProductがあると仮定します。このプロパティの名前(この例ではName)を列の.DataPropertyに入力する必要があります。

上記はデザイナーまたはコード(コンストラクター)で行うことができます

datagridviewにリスト製品List<Product> lstProducts;を追加すると、次のようになります。

dgvProductCorrections.DataSource = lstProducts; //(this may be in Form_Load)

リストを追加する前に、datagridviewプロパティAutoGenerateColumnsをに設定することを忘れないでくださいFalse

dgvProductCorrections.AutoGenerateColumns = false;

[送信]ボタンのButton_Clickイベントハンドラーに、すべての行をループインして修正値を読み取るコードを配置します。これらの値でデータベースを更新できるようになったら

//Code in Button_Click
{   
    foreach(DataGridVewRow dgvr in dgvProductCorrections.Rows)
    {
        Decimal fCorrection;
        //Check if value exists and it can be used. Add own other checks
        if(dgvr.Cells(this. dgvProductCorrection_Correction.Name).Value != null &&  Decimal.TryParse(dgvr.Cells(this.dgvProductCorrection_Correction.Name).Value.ToString(), fCorrection) = True)
        {
         //Here you can put a update code, or save a correction in list and then update all by one update call
        }
    }
}
于 2013-03-12T17:34:49.090 に答える