c# - 在Datagridview C#中按按钮状态处理单击
问题描述
我想创建一个按钮。首先点击做某事。然后第二次点击会做一些与第一次不同的事情
例子 :
- 第一次点击:Thread.Start();
- 第二次点击:Thread.Stop();
这只是一个例子。一键点击两次。
解决方案
添加按钮主题是非常简单的改进逻辑基础
创建按钮列并将其添加到列中,然后添加 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;
}
}
结果:
点击之前
点击后
推荐阅读
- python - 如何正确销毁 tkinter 中的顶级小部件
- audio - 需要有关无线音频解决方案硬件堆栈的建议
- google-bigquery - 当文件具有混合数据字段作为列时如何将 jsonl 文件加载到 BigQuery
- php - 尝试分配非对象 laravel 5.8 的属性“内容”
- google-colaboratory - Google Colab 文件不见了
- javascript - FlatList 不显示 API 结果
- spring-boot - Spring Boot 默认基于属性的自动配置
- java - 如何访问静态嵌套类中的私有类
- tomcat - 如何配置 tomcat 以提供预压缩的静态文件?
- c - fgets 是存储换行符还是仅存储 \0?