C# | WinForm控件常用方法——DataGridView数据网格控件(表头/数据居中 、整行选中 、单选限制 、获取数据 、监听改变 、行高列宽 、条件筛选)

在这里插入图片描述

WinForm控件常用方法——DataGridView数据网格控件

前言

在WinForm开发中,DataGridView控件是一个功能强大且常用的数据展示和交互控件。本文将分享DataGridView控件的常用的方法和技巧。


表头居中显示

dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

通过修改表格控件.ColumnHeadersDefaultCellStyle.Alignment的值,我们可以将表头靠左、靠右、居中。

数据居中显示

foreach (DataGridViewColumn column in dataGridView1.Columns)
{
    column.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
}

遍历 DataGridView 的每一列,并将列的默认单元格样式的对齐方式设置为居中对齐,即 DataGridViewContentAlignment.MiddleCenter,这样就可以实现居中显示的效果。

一次选中一整行

dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

通过设置其 SelectionMode 属性来完成。

每一次只允许选中一行

dataGridView1.MultiSelect = false;

当将 MultiSelect 属性设置为 false 时,就只能每次选中一行。

获取选中行的数据

if (dataGridView1.SelectedRows.Count > 0)
{
    DataGridViewRow selectedRow = dataGridView1.SelectedRows[0];
    foreach (DataGridViewCell cell in selectedRow.Cells)
    {
        string cellValue = cell.Value.ToString();
        Console.WriteLine(cellValue);
    }
}

首先检查是否有选中的行,如果有,则获取选中的第一行,并遍历这一行的每个单元格,获取单元格的值并进行处理(此处是将值打印到控制台)。

监听选中行发生改变的事件

private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
    // 在此处添加你的代码
    if (dataGridView1.SelectedRows.Count > 0)
    {
        DataGridViewRow selectedRow = dataGridView1.SelectedRows[0];
        foreach (DataGridViewCell cell in selectedRow.Cells)
        {
            string cellValue = cell.Value.ToString();
            Console.WriteLine(cellValue);
        }
    }
}

要在选中行发生改变时得到通知,可以使用DataGridView的SelectionChanged事件。
在方法内部,可以通过dataGridView1.SelectedRows获取选中的行,并进行相应的处理。

设置行高和列宽

设置行高:

dataGridView1.RowsDefaultCellStyle.Height = 30;  // 将默认行高设置为 30 像素

设置列宽:

dataGridView1.Columns["ColumnName"].Width = 100;  // 将指定列名为"ColumnName"的列宽设置为 100 像素

通过索引设置列宽:

dataGridView1.Columns[0].Width = 80;  // 将第一列的列宽设置为 80 像素

通过条件筛选显示部分内容

可以通过以下步骤对 DataGridView 的内容进行条件筛选显示:

  1. 获取要筛选的数据来源,例如 DataTable 。
  2. 根据设定的条件对数据进行筛选。
  3. 将筛选后的结果重新绑定到 DataGridView 。
DataTable data = (DataTable)dataGridView1.DataSource;  // 获取数据源

DataView view = new DataView(data);  // 创建数据视图

// 假设根据"Age"列进行筛选,年龄大于 20
view.RowFilter = "Age > 20"; 

dataGridView1.DataSource = view;  // 将筛选后的结果重新绑定

结束语

本文介绍了DataGridView数据网格控件的表头居中 、数据居中 、整行选中 、单选限制 、获取数据 、监听改变 、行高列宽 、条件筛选功能如何实现。如果您在实际开发中遇到任何问题或有更多的需求,欢迎进一步深入研究和探索。祝您开发顺利!

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
要实现以波形图的方式实时显示数据采集卡采集到的数据,可以借助C#中的Chart控件来完成。下面是实现步骤: 1. 在Visual Studio中创建一个Winform项目; 2. 在工具箱中找到Chart控件并将其拖拽到窗体上; 3. 在代码中声明一个Timer计时器控件,用于定时刷新图表数据; 4. 在代码中编写数据采集卡采集数据的代码; 5. 在Timer计时器的Tick事件中,将采集到的数据添加到图表中,并移动图表的X轴; 6. 实时刷新图表,即可实现以波形图的方式实时显示数据采集卡采集到的数据。 下面是完整的代码示例: ```csharp using System; using System.Windows.Forms; using System.Windows.Forms.DataVisualization.Charting; namespace WaveformDemo { public partial class Form1 : Form { private Chart chart1; private Timer timer1; private int count = 0; public Form1() { InitializeComponent(); // 初始化Chart控件 chart1 = new Chart(); chart1.Parent = this; chart1.Dock = DockStyle.Fill; chart1.ChartAreas.Add(new ChartArea("Draw")); chart1.Series.Add(new Series("Waveform")); chart1.Series[0].ChartType = SeriesChartType.Line; chart1.Series[0].ChartArea = "Draw"; chart1.Series[0].BorderWidth = 2; chart1.Series[0].Color = System.Drawing.Color.Blue; // 初始化Timer控件 timer1 = new Timer(); timer1.Interval = 1000; timer1.Tick += Timer1_Tick; timer1.Start(); } private void Timer1_Tick(object sender, EventArgs e) { // 采集数据 double data = GetDataFromDAQ(); // 添加数据到图表 chart1.Series[0].Points.AddY(data); count++; // 移动X轴 if (count > chart1.ChartAreas[0].AxisX.Maximum) { chart1.ChartAreas[0].AxisX.Maximum = count; chart1.ChartAreas[0].AxisX.Minimum = count - chart1.ChartAreas[0].AxisX.ScaleView.Size; } // 刷新图表 chart1.Invalidate(); } private double GetDataFromDAQ() { // TODO: 从数据采集卡获取数据 return Math.Sin(count * Math.PI / 180); } } } ``` 在上面的代码中,我们创建了一个Chart控件和一个Timer计时器控件,并在Timer计时器的Tick事件中实时刷新图表。在GetDataFromDAQ方法中,我们模拟了从数据采集卡获取数据的过程。你需要根据实际情况修改这个方法,以获取真实的数据
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猿长大人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值