2012-12-05 59 views
0

我忙于使用Windows Embedded CE 5.0移动应用程序。我现在有点卡住了。我正在使用数据的数据网格。我想添加一个额外的列到网格中(已经这样做了,我从double中添加了null)。现在在应用程序中,我希望用户能够更改该字段的值(一个包中有多少个单元)。Windows Embedded CE 5.0移动应用程序Gridview C#

这是我为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(); 
    } 

enter image description here

所以上面是怎么看的时刻。因此,当用户例如点击Pack_Units的第一个字段时,我希望他们能够编辑该字段。

目标是当他们点击NEXT按钮时,验证程序必须运行并检查是否正确。所以如果有人能够告诉我如何从选择字段获取值,那将会很棒?

即时通讯使用Oracle数据库与VS 2005 c#。

在此先感谢!

回答

1

为了得到当前选定单元格的值(假设dgSku是你的DataGrid):

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

为了能够编辑场....恐怕解决方案是相当痛苦的。你需要的是一个由TextBox组成的列,而且由于.NETCF只提供了一部分桌面等效功能,你必须自己创建一个。看看herehere,这应该会给你一个很好的起点。

0

StaWho是对的,CF不支持内联编辑。 Paul Yao在他的书“编程.Net精简框架”中有一个很好的解决方案。

另一个解决方法是将一个文本字段添加到窗体并使用网格单击事件来显示和更改Pack_Units列的值以进行编辑。

相关问题