C#窗体控件DataGridView

目录

简介

基本框架

案例

案例1,往DataGridView中添加新列。

案例2,使用列名删除DataGridView中的某一列。

案例3,人手选中某一列,然后进行删除。

案例4,添加新的一行。

案例5,删除选中行。

案例6,修改某个单元格的值。


简介

可以以图表形式显示信息。


基本框架

新建一个窗体程序,拖到工具栏中的DataGridView控件到窗体中,并往里面添加三列,分别为name,age,job。


案例

案例1,往DataGridView中添加新列。

创建一个按钮,往按钮的click事件中添加以下代码。

 private void button4_Click(object sender, EventArgs e)
 {
     var columns = dataGridView1.Columns;    //获取datagridview中列的集合
     columns.Add("colHeight", "身高");     //往列集合中添加一个新项,参数1为列名,参数2为列表头
 }

点击按钮显示结果如下:


案例2,使用列名删除DataGridView中的某一列。

在案例1的基础上,添加一个新的按钮,往按钮的click事件中添加以下代码。

  private void button5_Click(object sender, EventArgs e)
  {
      var columns=dataGridView1.Columns;      //获取列的集合
      if (columns.Contains("colHeight"))     //判断是否有colHeight这一列,如果是通过index清除,则不需要判断
      {
          columns.Remove("colHeight");
      }
  }

先使用案例1创建的按钮,新建一列,然后点击案例2的按钮,会发现,案例1创建的按钮被移除。


案例3,人手选中某一列,然后进行删除。

该案例利用选中列的index来对列进行删除。添加一个按钮,往按钮的click事件中添加以下代码。

 private void button6_Click(object sender, EventArgs e)
 {
     var columns = dataGridView1.Columns;        //获取列的集合
     var address=dataGridView1.CurrentCellAddress;       //获取选中单元格的行列坐标
     int columnIndex=address.Y;      //获取列坐标
     columns.RemoveAt(columnIndex);      //把列集合中对应的index的列删除

 }

案例4,添加新的一行。

添加三个textbox控件,分别取名为tbxName,tbxAge,tbxJob,然后添加一个按钮,往按钮的click事件中添加如下代码。

private void button7_Click(object sender, EventArgs e)
{
    string[] msg = new string[3];   //因为每一行有name,age,job三个信息,所以创建一个三个对象的string数组
    msg[0] = tbxName.Text;      //设置name
    msg[1] = tbxAge.Text;    //设置age
    msg[2] = tbxJob.Text;   //设置职业

    var rows=dataGridView1.Rows;    //获取行的集合
    rows.Add(msg);  //往行中添加之前设定的字符串数组对象
}

输入:

结果:


案例5,删除选中行。

添加一个按钮,往按钮的click事件中添加如下代码。

private void button8_Click(object sender, EventArgs e)
{
    var address = dataGridView1.CurrentCellAddress;       //获取选中单元格的行列坐标
    int rowIndex = address.X;      //获取行坐标

    var rows = dataGridView1.Rows;    //获取行的集合
    rows.RemoveAt(rowIndex);    //删除指定行
}

案例6,修改某个单元格的值。

添加一个textbox控件,命名为tbxValueChange,再添加一个按钮,往按钮的click事件中添加如下代码。

private void button9_Click(object sender, EventArgs e)
{
    var currentCell=dataGridView1.CurrentCell;      //获取当前选中的单元格
    currentCell.Value=tbxValueChange.Text;      //把选中单元格的值,改为文本框的设定值 
}

  • 17
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 C# 窗体DataGridView 控件实现查询功能的示例代码: ```csharp using System; using System.Data.SqlClient; using System.Windows.Forms; namespace DataGridViewQuery { public partial class Form1 : Form { private SqlConnection conn; private SqlDataAdapter adapter; private SqlCommandBuilder builder; private DataSet dataset; private string connectionString = "Data Source=SERVER_NAME;Initial Catalog=DATABASE_NAME;User ID=USERNAME;Password=PASSWORD"; public Form1() { InitializeComponent(); conn = new SqlConnection(connectionString); adapter = new SqlDataAdapter("SELECT * FROM Table1", conn); builder = new SqlCommandBuilder(adapter); dataset = new DataSet(); } private void Form1_Load(object sender, EventArgs e) { adapter.Fill(dataset, "Table1"); dataGridView1.DataSource = dataset.Tables[0]; } private void btnQuery_Click(object sender, EventArgs e) { string query = txtQuery.Text; string filter = ""; if (!string.IsNullOrEmpty(query)) { filter = string.Format("Column1 LIKE '%{0}%' OR Column2 LIKE '%{0}%'", query); } ((DataTable)dataGridView1.DataSource).DefaultView.RowFilter = filter; } private void btnSave_Click(object sender, EventArgs e) { adapter.Update(dataset, "Table1"); } } } ``` 在上面的代码中,我们先定义了一个 `SqlConnection` 对象和一个 `SqlDataAdapter` 对象,然后在窗体加载时使用 `Fill` 方法将数据填充到 `DataSet` 对象中,并将 `DataSet` 对象中的第一个表格绑定到 `DataGridView` 控件上。 当用户点击“查询”按钮时,我们首先获取用户输入的查询条件,然后使用 `string.Format` 方法生成一个筛选条件,最后将其赋值给 `DefaultView.RowFilter` 属性即可实现数据筛选。 当用户点击“保存”按钮时,我们使用 `Update` 方法将 `DataSet` 对象中的数据保存回数据库中。 需要注意的是,上面的代码中的 `SERVER_NAME`、`DATABASE_NAME`、`USERNAME` 和 `PASSWORD` 需要根据实际情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值