首页 > 解决方案 > 在Datagridview C#中按按钮状态处理单击

问题描述

我想创建一个按钮。首先点击做某事。然后第二次点击会做一些与第一次不同的事情

例子 :

这只是一个例子。一键点击两次。

标签: c#

解决方案


添加按钮主题是非常简单的改进逻辑基础

创建按钮列并将其添加到列中,然后添加 2 行示例

        DataGridViewButtonColumn dvButton = new DataGridViewButtonColumn();
        dvButton.HeaderText = "MyButton";
        dvButton.Name = "MyButton";

        dataGridView.Columns.Add("MyColumn", "MyText");
        dataGridView.Columns.Add(dvButton);

        dataGridView.Rows.Add("Text 1", "Start");
        dataGridView.Rows.Add("Text 2", "Start");

添加单元格点击事件

        dataGridView.CellClick += (s, e) =>
        {
            if (e.RowIndex >= 0 && e.ColumnIndex == dataGridView.Columns.IndexOf(dvButton))
            {
                var cell = dataGridView[e.ColumnIndex, e.RowIndex];
                MessageBox.Show($"Row {e.RowIndex.ToString()} with [{cell.Value}] clicked");

                HandleValue(cell);
            }
        };

和句柄功能

    public void HandleValue(DataGridViewCell cell)
    {
        switch (cell.Value.ToString())
        {
            case "Start":
                //Handle started
                cell.Value = "Stop";
                break;
            case "Stop":
                //Handle stopped
                cell.Value = "Start";
                break;
        }
    }

结果:

点击之前

在此处输入图像描述

点击后

在此处输入图像描述


推荐阅读