C# winform datagridview 增加按钮
时间: 2023-09-25 11:06:29 浏览: 60
C是一种计算机编程语言,由美国计算机科学家丹尼斯·里奇在20世纪70年代开发。C语言被广泛应用于系统软件、驱动程序和嵌入式系统等领域。它是一种高效、灵活和功能丰富的语言,也是许多其他编程语言的基础。C语言具有强大的指针和内存管理功能,可以直接访问计算机的硬件资源,并提供了丰富的库函数和标准库,使得开发者可以轻松地编写高性能、可移植的程序。
相关问题
c# winform datagridview赋值代码实现
使用 C# WinForm 中的 DataGridView 控件,可以通过以下代码将数据赋值给 DataGridView:
1. 准备数据源:可以使用 DataTable、DataSet 或 List 等数据类型作为数据源。
2. 设置 DataGridView 的 DataSource 属性为准备好的数据源。
3. 可以通过代码设置 DataGridView 中列的属性,例如列标题、列宽、是否可编辑等。
4. 如果需要,可以通过代码添加按钮、复选框等控件到 DataGridView 中。
下面是一个简单的示例代码,演示如何将 DataTable 赋值给 DataGridView:
```csharp
// 准备数据源
DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Age", typeof(int));
dt.Rows.Add(1, "Tom", 25);
dt.Rows.Add(2, "Mary", 30);
dt.Rows.Add(3, "John", 40);
// 设置 DataGridView 的 DataSource 属性
dataGridView1.DataSource = dt;
// 设置 DataGridView 中列的属性
dataGridView1.Columns[0].HeaderText = "编号";
dataGridView1.Columns[1].HeaderText = "姓名";
dataGridView1.Columns[2].HeaderText = "年龄";
dataGridView1.Columns[2].Width = 60;
dataGridView1.Columns[2].ReadOnly = true;
```
上述代码将 DataTable 赋值给了 DataGridView,并设置了列标题、列宽和只读属性。如果需要在 DataGridView 中添加按钮或复选框,可以使用 DataGridViewButtonColumn 或 DataGridViewCheckBoxColumn 等列类型。
C# winform datagridview 对json配置文件进行增删改查
首先,需要将json文件读入到程序中,可以使用Newtonsoft.Json库实现。然后,将json数据绑定到DataGridView控件上面,以实现数据的展示和编辑。对于增删改查操作,可以通过DataGridView控件提供的事件和方法来实现。
下面是一个基本的示例代码:
```csharp
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Windows.Forms;
namespace JsonConfigEditor
{
public partial class MainForm : Form
{
private string _configFilePath = "config.json";
private List<ConfigItem> _configItems = new List<ConfigItem>();
public MainForm()
{
InitializeComponent();
}
private void MainForm_Load(object sender, EventArgs e)
{
// 读取配置文件
if (File.Exists(_configFilePath))
{
string json = File.ReadAllText(_configFilePath);
_configItems = JsonConvert.DeserializeObject<List<ConfigItem>>(json);
}
// 绑定DataGridView控件
dataGridView1.DataSource = _configItems;
}
private void btnSave_Click(object sender, EventArgs e)
{
// 保存配置文件
string json = JsonConvert.SerializeObject(_configItems);
File.WriteAllText(_configFilePath, json);
}
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
// 更新配置项
if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
{
var configItem = _configItems[e.RowIndex];
switch (dataGridView1.Columns[e.ColumnIndex].Name)
{
case "Key":
configItem.Key = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
break;
case "Value":
configItem.Value = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
break;
}
}
}
private void btnAdd_Click(object sender, EventArgs e)
{
// 添加新的配置项
_configItems.Add(new ConfigItem { Key = "", Value = "" });
dataGridView1.DataSource = null;
dataGridView1.DataSource = _configItems;
}
private void btnDelete_Click(object sender, EventArgs e)
{
// 删除选中的配置项
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
_configItems.RemoveAt(row.Index);
}
dataGridView1.DataSource = null;
dataGridView1.DataSource = _configItems;
}
private void btnSearch_Click(object sender, EventArgs e)
{
// 查找关键字匹配的配置项
string keyword = txtKeyword.Text.Trim();
if (!string.IsNullOrEmpty(keyword))
{
var result = _configItems.FindAll(item => item.Key.Contains(keyword) || item.Value.Contains(keyword));
dataGridView1.DataSource = null;
dataGridView1.DataSource = result;
}
else
{
dataGridView1.DataSource = null;
dataGridView1.DataSource = _configItems;
}
}
}
public class ConfigItem
{
public string Key { get; set; }
public string Value { get; set; }
}
}
```
在这个示例代码中,我们使用了一个List<ConfigItem>来存储读入的json数据,并将其绑定到了DataGridView控件上。然后,我们实现了一些按钮的点击事件,用于添加、删除、保存、查找配置项。在DataGridView控件的CellValueChanged事件中,我们可以捕获用户对配置项的修改,并将其同步到_configItems列表中。最后,在保存配置文件时,我们将_configItems序列化为json格式,并写入到磁盘文件中。