0

Windows Embedded CE 5.0 モバイル アプリで忙しくしています。現時点では少し立ち往生しています。私はデータでデータグリッドを使用しています。グリッドに余分な列を追加したい(すでにこれを行っています。デュアルからnullを追加しました)。アプリで、ユーザーがフィールドの値を変更できるようにしたい(1つのパックに含まれるユニットの数)。

Datagrid のコードは次のとおりです。

private void gridView()
    {
        conn.Open();
        string query = "select distinct s.sku_id_no SKU_id, (pt.product_type_desc|| ' ' ||ps.prod_size_desc|| ' ' ||c.colour_desc) Product_Desc, null Pack_Units from sku s , product_type pt , prod_size ps , colour c , purch_order_carton_sku pocs, purch_order_carton_sku poc, dual where pocs.order_no ='" + this.orderCode + "' and pocs.carton_code ='" + this.cartonCode + "' and pocs.sku_id_no = s.sku_id_no and s.prod_size_id_no = ps.prod_size_id_no(+) and s.colour_id_no = c.colour_id_no(+)";
        OracleDataAdapter da = new OracleDataAdapter(query, conn);
        OracleDataSet ds = new OracleDataSet();
        da.Fill(ds);
        dgSku.DataSource = ds.Tables[0]; 
    {

次に、画面が次のように読み込まれるときにグリッドを呼び出します。

private void frmCartonContentVerification_Load(object sender, EventArgs e)
    {
        gridView();
    }

ここに画像の説明を入力

以上が現時点での様子です。たとえば、ユーザーが Pack_Units の最初のフィールドをクリックすると、フィールドを編集できるようになります。

目標は、[次へ] ボタンをクリックしたときに検証手順を実行し、それが正しいかどうかを確認することです。選択フィールドから値を取得する方法を教えてくれる人もいれば、それは素晴らしいことです??

VS 2005 c# で Oracle データベースを使用しています。

前もって感謝します!

4

2 に答える 2

1

現在選択されているセルの値を取得するには ( dgSkuDataGrid であると仮定します):

var value = dgSku[dgSku.CurrentCell.RowNumber, dgSku.CurrentCell.ColumnNumber];

フィールドを編集できるようにするには....解決策はかなり面倒です。基本的に必要なのは、TextBox で構成される列です。.NETCF はデスクトップに相当する機能のサブセットのみを提供するため、自分で作成する必要があります。ここここを見てください。これは良い出発点になるはずです。

于 2012-12-05T09:18:02.630 に答える
0

StaWho の言う通り、CF はインライン編集をサポートしていません。Paul Yao は、彼の著書「Programming the .Net Compact Framework」で優れたソリューションを提供しています。

もう 1 つの回避策は、フォームに 1 つのテキスト フィールドを追加し、グリッド クリック イベントを使用して、編集用に Pack_Units 列の値を表示および変更することです。

于 2012-12-06T09:48:55.507 に答える