2016-09-17 7 views
0

DataGridViewにボタンを追加してアイテムを削除しようとしています。これを行うには、DataGridViewButtonCellを使用しようとしています。画像が含まれている可能性があるためです。 DataGridViewの最初の列に私のボタンを押してもらえませんでしたが、私はDataSourceとして使用するIListを持っています。この場合、そのボタンをGridViewに追加する方法はわかりません。DataGridViewのアイテムを削除するDataGridViewButtonCellを作成しますか?

どうすればいいですか?私はこれをしたい

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); 
     } 

は、ここに私のコードです。完了

enter image description here

+0

ある項目

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); } } } 

を削除するためにハンドラを追加しました/ a/33549704/3110834) –

+0

[ボタン列のDataGridViewイメージ](http://stackoverflow.com/a/36253883/3110834) –

答えて

0

。最後に私は欲しかったことをやった。

でした。 (http://stackoverflow.com -

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; 

     } 

最後に私は、[行の削除ボタンコントロールとのDataGridView]結果は

enter image description here

関連する問題