首页 > 解决方案 > 在 C# 中单击 DataGridView 中的查看按钮

问题描述

我是 C# 的初学者。我有一个名为 ClientTransaction 和 ServiceDetails 的 Windows 窗体。我制作了一个 DataGridView,它在一行中有一个查看按钮,当您单击它时,它将生成一个 servicedetail 表单。我希望将 datagridview 中的客户端事务中的值传递到服务详细信息中。

客户交易表格:

客户交易表格

单击视图后,将进入服务详细信息表

服务详情表格仅模拟

服务详情表

我试试这个代码

private void ClientTransaction_Load(object sender, EventArgs e)
    {

        DataGridViewButtonColumn viewBtn = new DataGridViewButtonColumn();
        viewBtn.HeaderText = "Action";
        viewBtn.Text = "View";
        viewBtn.Name = "btnView";
        viewBtn.UseColumnTextForButtonValue = true;
        reservedGrid.Columns.Add(viewBtn);


    }
private void reservedGrid_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
        var senderGrid = (DataGridView)sender;

        if (senderGrid.Columns[e.ColumnIndex] is DataGridViewButtonColumn &&
            e.RowIndex >= 0)
        {
            //TODO - Button Clicked - Execute Code Here 
            ServiceDetail viiew = new ServiceDetail();
            viiew.Show();
            }
    }

它可以在另一个表单上进行,但我仍然找到它的方法,从 datagridview 中客户端事务的每一行的值以另一种形式传递数据,这将在服务详细信息表单中传递,如上面的屏幕截图所示。谢谢!

客户交易表

idINT AUTO_INCREMENT PRIMARY KEY, client_idINT NOT NULL, statusVARCHAR(20) NOT NULL, total_amtDOUBLE (7,2), trans_datetimestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

服务明细表

idINT AUTO_INCREMENT PRIMARY KEY, client_transaction_idINT NOT NULL, barber_idINT NOT NULL, service_idINT NOT NULL, added_ontimestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

标签: c#datagridviewvisual-studio-2017

解决方案


如果服务详细信息表单中没有构造函数,则在单击 viewBtn 时通过构造函数将信息传递给服务详细信息表单,然后在服务详细信息表单中为您的信息构造构造函数。

ServiceDetail viiew = new ServiceDetail(.....);//ID,client,total,etc
viiew.Show();

当您添加服务详细信息表单时,然后在此处添加参数化构造函数

 class ServiceDetail
 {
    public ServiceDetail()
    {
      InitializeComponent();
    }
    public ServiceDetail(..................)//ID,client,total,etc
    {
      ............................
      ............................
    }
  }

推荐阅读