【问题标题】:Creating DataGridViewButtonCell to delete item of DataGridView?创建 DataGridViewButtonCell 以删除 DataGridView 的项目?
【发布时间】:2016-09-17 05:34:02
【问题描述】:

我正在尝试将按钮添加到 DataGridView 以从中删除项目。为此,我尝试使用DataGridViewButtonCell,因为我看到它可以包含图像。我不想让我的按钮停留在DataGridView 的第一列,但我有一个IList,我将其用作DataSource,在这种情况下我不知道如何将该按钮添加到GridView .

我该怎么做?

这是我的代码:

private void setDataSource(){
   grid.DataSource = ivDAO.findAllItemVenda(venda);
   grid.ClearSelection();
   defineGrid();
}  

private void defineGrid() {
            //header 
            grid.Columns["produto"].HeaderText = "Produto";
            grid.Columns["valorUn"].HeaderText = "Unit.R$";
            grid.Columns["quantidade"].HeaderText = "Qtd.";
            grid.Columns["total"].HeaderText = "Total R$";

            //hide
            grid.Columns["id"].Visible = false;
            grid.Columns["venda"].Visible = false;

            //width
            grid.Columns["produto"].Width = 235;
            grid.Columns["valorUn"].Width = 80;
            grid.Columns["quantidade"].Width = 50;
            grid.Columns["total"].Width = 80;

            //align
            grid.Columns["valorUn"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
            grid.Columns["quantidade"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
            grid.Columns["total"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;

            //add button
            DataGridViewButtonCell btnDelete = new DataGridViewButtonCell();
            btnDelete.Value = "delete";
            grid.Rows.Add(btnDelete);
        }

我想要这个。

【问题讨论】:

标签: c# datagridview


【解决方案1】:

完成。终于如愿以偿了。

我做到了。

private void setDataSource(){
   //added column with image before set datasource
   if (grid.Columns["Del"] == null) {
                    var col = new DataGridViewImageColumn();
                    col.HeaderText = "";
                    col.Name = "Del";
                    col.Image = TerminalControleDeVendas.Properties.Resources.trash;
                    grid.Columns.Add(col);
                }
   grid.DataSource = ivDAO.findAllItemVenda(venda);
   grid.ClearSelection();
   defineGrid();
}  


private void defineGrid() {
            //header 
            grid.Columns["produto"].HeaderText = "Produto";
            grid.Columns["valorUn"].HeaderText = "Unit.R$";
            grid.Columns["quantidade"].HeaderText = "Qtd.";
            grid.Columns["total"].HeaderText = "Total R$";

            //hide
            grid.Columns["id"].Visible = false;
            grid.Columns["venda"].Visible = false;

            //width
            grid.Columns["Del"].Width = 30;
            grid.Columns["produto"].Width = 220;
            grid.Columns["valorUn"].Width = 80;
            grid.Columns["quantidade"].Width = 50;
            grid.Columns["total"].Width = 80;

            //align
            grid.Columns["valorUn"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
            grid.Columns["quantidade"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
            grid.Columns["total"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;

        }

最后我添加了删除项目的处理程序

private void grid_CellContentClick(object sender, DataGridViewCellEventArgs e) {
            if (this.grid.Columns[e.ColumnIndex].Name == "Del") {
                DialogResult confirma = MessageBox.Show("Deseja realmente excluir o item ?", "Excluir", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (confirma == DialogResult.Yes) {
                    ItemVenda iv = (ItemVenda)grid.CurrentRow.DataBoundItem;
                    ivDAO.delete(iv);                        
                }
            }            
        }

结果是

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 2021-08-09
    • 2021-09-14
    相关资源
    最近更新 更多