如何添加新列以删除Datagrid的行,Windows mobile

时间:2014-01-24 16:57:07

标签: c# datagrid windows-mobile

我正在C#visual studio 2008)和sql server 2008

开发Windows移动应用程序

我使用“选择”来显示DataGrid

中的列
                SqlCeDataAdapter da = new SqlCeDataAdapter("SELECT * FROM DATOST", conn);
                da.Fill(ds, "DATOST");
                dtgLista.DataSource = ds.Tables[0].DefaultView;

它显示的内容类似于this

我要做的是添加一个单词remove的新列,当它被选中时删除该行。

我尝试了this

---还有更多我不能写的链接,因为我需要至少10个声望才能发布超过2个链接---

但是我的应用无效

请问更容易吗?

谢谢

2 个答案:

答案 0 :(得分:1)

Compact Framework,在Windows Mobile上运行的.net运行时,不支持数据网格中的按钮或其他元素。默认情况下仅支持EditBox。

关于如何在stackoverflow处将按钮或checkBox添加到紧凑框架数据网格中已有问题和答案:

How to add a button to a compact framework DataGrid?

Attach button to column datagrid in C# Compact Framework .Net 2.0

display images in datagrid with Compact Framework

以及其他方面,例如:http://social.msdn.microsoft.com/Forums/en-US/caee833d-f0ac-496f-b13c-b87116450f39/how-to-add-a-button-in-a-datagrid

解决方案是为数据中心添加自定义绘制处理程序。

还有一些商业扩展数据网格控件可用,它们不仅支持EditBox:例如Resco SmartDrid控件:article在codeproject。我相信还有其他供应商。只需使用互联网搜索“紧凑框架数据网格添加按钮”。

答案 1 :(得分:-1)

您可以将删除按钮添加到datagridview

        SqlCeDataAdapter da = new SqlCeDataAdapter("SELECT * FROM DATOST", conn);
        da.Fill(ds, "DATOST");
        DataGridViewButtonColumn col = new DataGridViewButtonColumn();
        col.UseColumnTextForButtonValue = true;
        col.Text = "REmove";
        col.Name = "MyButton";
        dataGridView1.Columns.Add(col);
        dtgLista.DataSource = ds.Tables[0].DefaultView;
        this.dataGridView1.CellContentClick += new DataGridViewCellEventHandler(this.CellContentClick);

然后编写事件处理程序以删除所选行

    private void CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
        //make sure click not on header and column is type of ButtonColumn
        if (e.RowIndex >= 0 && ((DataGridView)sender).Columns[e.ColumnIndex].GetType() == typeof(DataGridViewButtonColumn))
        {
            dataGridView1.Rows.RemoveAt(e.RowIndex);
        }
    }