标签: datagridview

C#DataGridView检查是否为空

我有一个datagridview,它填充了linq查询返回的数据.如果查询没有返回任何结果,我想显示一个消息框.有没有办法检查datagridview是否为空?

问候

c# datagridview winforms

14
推荐指数
1
解决办法
5万
查看次数

如何从DataGridView构建DataTable?

我可能会向后看这个问题,但我很好奇.有没有办法DataTable从目前显示的内容中构建一个DataGridView

要清楚,我知道你可以这样做,DataTable data = (DataTable)(dgvMyMembers.DataSource);但包括隐藏的列.我想只从显示的列构建它.

希望有道理.


所以我最终尝试了几个答案的组合,因为这似乎是最好的.以下是我的尝试.基本上我是从DataSource创建DataTable,然后根据列是否可见来向后工作.但是,在删除列后,我会Collection was modified; enumeration operation may not execute在下一次迭代中得到一个foreach.

我很困惑,因为我不想要修改DataGridView,只有DataTable这样这是怎么回事?

DataTable data = GetDataTableFromDGV(dgvMyMembers);


    private DataTable GetDataTableFromDGV(DataGridView dgv)
    {
        var dt = ((DataTable)dgv.DataSource).Copy();
        foreach (DataGridViewColumn column in dgv.Columns)
        {
            if (!column.Visible)
            {
                dt.Columns.Remove(column.Name);
            }
        }
        return dt;
    }
Run Code Online (Sandbox Code Playgroud)

.net c# datatable datagridview

14
推荐指数
3
解决办法
9万
查看次数

如何在DataGridView中获取当前单元格位置x和y?

我有一个带有隐藏日历的Windows表单.我想在DataGridView的当前单元格下面显示表单.位置根据当前单元格的位置而变化.

我不想要当前的单元格或当前列,我想要的位置,以便我可以设置我的日期表单的位置.

这是我正在使用但它不工作:

int po_X = paygrid.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).Left+paygrid.Left;
int po_Y = paygrid.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).Bottom+paygrid.Top;
form_date.Location = new System.Drawing.Point(po_X, po_Y);
Run Code Online (Sandbox Code Playgroud)

.net c# datagridview

14
推荐指数
1
解决办法
3万
查看次数

DataGridView更改单元格背景颜色

我有以下代码:

private void dgvStatus_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
    foreach (DataGridViewRow row in dgvStatus.Rows)
    {
        row.Cells[color.Index].Style.BackColor = Color.FromArgb(((GesTest.dsEssais.FMstatusAnomalieRow)row.DataBoundItem).iColor);
    }
}
Run Code Online (Sandbox Code Playgroud)

我试图从背景颜色列设置每个单元格的背景颜色.这不起作用颜色永远不会改变.知道为什么吗?

我一直在环顾四周,但没有找到任何有用的东西

c# datagridview winforms

14
推荐指数
5
解决办法
13万
查看次数

插入后如何在datagridview中立即刷新或显示?

将数据输入所有文本框后,单击提交按钮后,它不会立即显示在datagridview中,我需要重新打开表单才能看到新插入的行.要刷新什么代码?

跟着@ user3222297代码.通过添加grdPatient.Update(); 和grdPatient.Refresh(); 单击确定插入成功后仍然无法刷新.

不会刷新

     using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Configuration;

namespace GRP_02_03_SACP
{
    public partial class patient : Form
    {
        // Data Table to store employee data
        DataTable Patient = new DataTable();

        // Keeps track of which row in Gridview
        // is selected
        DataGridViewRow currentRow = null;

        SqlDataAdapter PatientAdapter;

        public patient()
        {
            InitializeComponent();
        }

        private void btnSubmit_Click(object sender, EventArgs e)
        {
            if (btnSubmit.Text == "Clear") …
Run Code Online (Sandbox Code Playgroud)

c# datagridview refresh insert button

14
推荐指数
3
解决办法
15万
查看次数

如何在VB.Net中向DataGridView添加记录?

如何在VB.Net中向DataGridView控件添加新记录?

我不使用数据集或数据库绑定.我有一个包含3个字段的小表单,当用户单击"确定"时,它们应作为新行添加到DataGridView控件中.

vb.net datagridview

13
推荐指数
2
解决办法
27万
查看次数

无法允许用户使用List <> Datasource将行添加到DataGridView

我已经DataGridView是必然DataSourceList<myClass>.但是当我将" AllowUserToAddRows"属性设置为"True"时,没有任何东西出现.

我试图改变trueDataSource,它的顺利.

我不知道我是否应该取代我BindingList<myClass>List<>或有更好的解决方案.

.net c# datagridview bindinglist winforms

13
推荐指数
1
解决办法
1万
查看次数

c#填充datagridview非常慢

我正在从数据表中填充datagridview.

在填充列和行时,我也同时对其进行格式化,这会导致datagridview加载速度非常慢,是否有解决此问题的方法?

c# datagridview

13
推荐指数
5
解决办法
2万
查看次数

如何处理DataGridViewLinkColumn的click事件

我在C#中有一个WinForm.其中一个DataGridView类型是DataGridViewLinkColumn.如何处理每列的click事件?

此代码似乎不起作用:

private void UserDataTable_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            //Code here
        }
Run Code Online (Sandbox Code Playgroud)

例如,如果我有10行,每当我点击对应于列" DataGridViewLinkColumn" 的每一行的内容时,我应该能够处理它.

谢谢

c# datagridview winforms

13
推荐指数
2
解决办法
2万
查看次数

使用所有单元格格式将dataGridView导出到Excel

我有这个代码,我知道它运行得很快

CopyAlltoClipboard(dataGridViewControl);
Microsoft.Office.Interop.Excel.Application xlexcel;
Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlexcel = new Excel.Application();
xlexcel.Visible = true;
xlWorkBook = xlexcel.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
xlWorkSheet.Name = page.Name;
Excel.Range CR = (Excel.Range)xlWorkSheet.Cells[1, 1];
CR.Select();
xlWorkSheet.PasteSpecial(CR, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, true);
((Microsoft.Office.Interop.Excel.Range)xlWorkSheet.Range["A1"]).EntireColumn.Delete(null); // delete the first column that has rows indexes
xlWorkBook.SaveAs(fileName);

private void CopyAlltoClipboard(DataGridView dataGridViewControl)
{
    dataGridViewControl.SelectAll();
    DataObject dataObj = dataGridViewControl.GetClipboardContent();
    if (dataObj != null)
       Invoke((Action)(() => { Clipboard.SetDataObject(dataObj); }));
}
Run Code Online (Sandbox Code Playgroud)

代码工作正常,但它只复制值是excel,也不复制单元格格式(换行文本,背景颜色,字体,边框等)任何人都可以帮我这个吗?如何完成此代码具有DataGridView中的确切格式?

.net c# datagridview excel-interop cell-formatting

13
推荐指数
2
解决办法
9815
查看次数