标签: datagridview

防止双击行分隔符触发 celldoubleclick 事件

在 rowheaders 可见性设置为 false 且 allowedusertoresizerow 设置为 true 的 datagridview 中,如果双击 rowdivider,我需要防止 celldoubleclick 事件触发(当光标位于分隔符上时,行调整大小的 Toublearrow 可见)。

谢谢

datagridview winforms

0
推荐指数
1
解决办法
966
查看次数

以编程方式将行添加到无界 datagridview

我将值从一种表单发送到另一种表单,然后想在 dgv 中显示,

我正在尝试这个,执行过程中没有错误,bt 它没有在 dgv 中显示数据..

lineItemsDGV.Rows.Add();

int RowIndex = lineItemsDGV.RowCount - 1;
DataGridViewRow NewRow =lineItemsDGV.Rows[RowIndex];
NewRow.Cells[0].Value = item.Product_id;
NewRow.Cells[1].Value = item.product_name;
NewRow.Cells[2].Value = item.specification;
NewRow.Cells[3].Value = item.unit_price;
NewRow.Cells[4].Value = item.unit_price * 1;
Run Code Online (Sandbox Code Playgroud)

datagridview

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

在列datagridview中搜索返回值对应值datadgridview vb.net

我有一个datagridviewvb.net列的。第一列是产品描述,第二列是产品编号,第三列是价格。

我想按产品编号搜索datagridview并返回价格列中的相应值。

我可以在 s 中搜索文本datagridview,但无法读取相应单元格的值,例如价格单元格。

Private Sub Button33_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button33.Click
    Dim rowindex As String
    For Each row As DataGridViewRow In DataGridView1.Rows
        If row.Cells.Item("ITEM_ID").Value = TextBox5.Text Then
            rowindex = row.Index.ToString()

            Dim actie As String = row.Cells("PRICE").Value.ToString()
            MsgBox(actie)

        Else

            MsgBox("Item not found")

        End If
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)

vb.net search datagridview

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

在 DataGridView C# 中删除行

我尝试循环遍历dataGridView1并删除不满足以下条件的行:

foreach (DataGridViewRow row in dataGridView1.Rows)
{
    if (!(Convert.ToDateTime(row.Cells[7].Value) - DateTime.Today).Days <= 0)
    {
        dataGridView1.Rows.Remove(row); //error: Uncommitted new row cannot be deleted.
    }
}
Run Code Online (Sandbox Code Playgroud)

但我收到了这个错误:

无法删除未提交的新行。

如果代码也是VB.NET,我可以管理。

.net c# vb.net datagridview row

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

在 vb.net 数据网格视图的特定列中添加按钮

我正在开发 vb.net windows 应用程序。我有一个网格视图..我正在填充我的数据网格视图,如下所示:

在加载事件中我写了这样的代码:

Dim cd As SqlCommandBuilder = New SqlCommandBuilder(adapter)
        adapter = New SqlDataAdapter("select c.cid,c.CompanyName,d.dtId,d.dtName as Department,d.dtPhone as Phone,d.dtEmail as Email,d.empimage as Image from CompanyMaster_tbl c join  DepartmentMaster_tbl d on c.Cid=d.cId order by cid", con.connect)
        dt1 = New DataTable
        bSource = New BindingSource
        adapter.Fill(dt1) 'Filling dt with the information from the DB
        bSource.DataSource = dt1
        gv.DataSource = bSource
        gv.Columns("cid").Visible = False
        gv.Columns("dtId").Visible = False
Run Code Online (Sandbox Code Playgroud)

所以我的网格视图是这样的:在此输入图像描述

我想在我的图像列中添加按钮..所以我尝试这样的代码:但这就是再添加一列。

 Dim btn As New DataGridViewButtonColumn
        gv.Columns.Insert(6, btn).  
Run Code Online (Sandbox Code Playgroud)

那么我如何在我的图像列中添加按钮

vb.net datagridview

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

在 DataColumn 上使用带有 BindingSource 的 'SUBSTRING(expression, startIndex, length)'

我试图通过匹配源字符串的开头和搜索字符串的长度来过滤数字字符串。

所有过滤的列都是字符串。大多数只是单词,但有一列的值如下所示001302:Alt#。底层数据源很糟糕,但我无法改变结构。这些数字根据左侧值进行分组(即050110050534都与 client(05) 相关,052123与 client(05) 发票(2) 相关)。我的用户希望能够搜索 DataGridView 中的数据并按组筛选该列(即输入 05 并查看以 05 开头的所有内容,或输入 052 并查看 052000-052999)

我正在生成过滤器字符串,并使用 DataSet 作为 DataSource 和 Table 作为 DataMember 在 BindingSource 上设置 Filter 属性。我的其余过滤工作正常,我遇到的唯一问题是数字过滤器。当我设置该BindingSource.Filter属性时,它抛出ArgumentOutOfRange异常。

System.Data.dll 中发生类型为“System.ArgumentOutOfRangeException”的未处理异常附加信息:Substring() 参数超出范围。

我想我可能会针对空行或只有几个数字的行来触发它,但它只用一个字符触发。因此,长度参数应该是有效的,但它仍然抛出异常。

bool firstColumn = true;
foreach (DataColumn column in FilteredColumns.Keys)
{
    if (FilteredColumns[column])
    {
        if (!firstColumn) fieldFilter.Append(") OR ("); else firstColumn = false;

        int numericFilter;
        if (int.TryParse(filterWord, out numericFilter))
        {
            fieldFilter.Append(String.Format("SUBSTRING({0}, 0, {2}) = {1}", column.ColumnName, …
Run Code Online (Sandbox Code Playgroud)

c# expression datagridview filter datacolumn

0
推荐指数
1
解决办法
2903
查看次数

双击时将 DataGridView 单元格值提取到变量

在我的 C# DataGridView 中,双击一行后,我希望将“ID”列单元格中的值分配给变量。我该怎么做呢??

c# datagridview winforms

0
推荐指数
1
解决办法
8553
查看次数

DataGridView 级联/相关组合框列

因此,我不时在 Winforms 中处理遗留应用程序,并且并不熟悉绑定对象的最佳实践。基本上,我有一个由三个部分组成的套装,其中有两个人,他们可能只有一个产品,但该产品可能会导致有不同的 SKU 集。有没有办法从第一个组合框的值触发组合框的事件和填充?我一直在环顾四周,我正在寻找有关如何绑定组合框的基本数据(我可以做到这一点),或者对如何绑定它做一些事情。触发依赖父项更改并更改数据集后不绑定。下面的例子:

POCOS:

Public Class Person
  Public Property PersonID As Integer
  Public Property FirstName As String
  Public Property LastName As String
  Public Property ProductId As Integer
  Public Property SkuId As Integer
End Class

Public Class Product
  Public Property ProductId As Integer
  Public Property Description As String
End Class

Public Class Sku
  Public Property SKUId As Integer
  Public Property ProductId As Integer
  Public Property Description As String
End Class
Run Code Online (Sandbox Code Playgroud)

主要代码示例(基本 UI 实际上只有一个标记为“ds”的数据集,该数据集与具有数据表的人员和产品 POCOS 几乎完全相同。数据网格视图“dgv”的列绑定到人员中的数据,除了名为 SKU 的列没有绑定因为我想在事后绑定它,这就是我失败的地方。

2016 年 …

vb.net data-binding datagridview datagridviewcombobox winforms

0
推荐指数
1
解决办法
1720
查看次数

SqlDataAdapter.Fill(DataGridView.DataSource) 复制所有行

简单的问题:

当我在SqlDataAdapter.Fill(DataGridView.DataSource)最初创建第一个数据后第二次调用时,它不会更新包含的行。它只是将 select 命令返回的所有行添加到我的 DataGridView 中。

如果我将其称为第三个、第四个(依此类推),它也只会添加返回的行。

我对 .Fill(DataTable) 函数的理解是否错误?如何正确更新已经存在的DataTable?哪一行代码负责?


事实证明,这一定是代码问题;

    DataGridView1.AutoGenerateColumns = False
    Dim sql = "select * from myTable"
    oDtSource = New DataTable
    oAdapter = New SqlDataAdapter
    oCon = sqlCon("serverName\Instance", "myDataBase") ' Returns a SqlConnection
    oCmd = New SqlCommand(sql, oCon)
    oCon.Open()

    oDtSource.Clear()

    oAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
    oAdapter.SelectCommand = oCmd
    oAdapter.Fill(oDtSource)
    DataGridView1.DataSource = oDtSource
Run Code Online (Sandbox Code Playgroud)

为了刷新我使用oAdapter.Fill(oDtSource) PrimaryKey 在数据库中设置

vb.net datagridview sqldataadapter

0
推荐指数
1
解决办法
1269
查看次数

如何修复此错误(System.Windows.Forms.DataGridViewCell.Value.get 返回 null。)

返回 null 时如何修复此错误

这是相关的代码部分:

        private void DgvIncome_MouseClick(object sender, MouseEventArgs e)
        {

            //try
            {
                txtCode.Text = dgvIncome.SelectedRows[0].Cells[1].Value.ToString();
                txtRecNo.Text = dgvIncome.SelectedRows[0].Cells[2].Value.ToString();
                txtMembershipID.Text = dgvIncome.SelectedRows[0].Cells[3].Value.ToString();
                txtGustName.Text = dgvIncome.SelectedRows[0].Cells[4].Value.ToString();
                txtGustMobile.Text = dgvIncome.SelectedRows[0].Cells[5].Value.ToString();
                txtNote.Text = dgvIncome.SelectedRows[0].Cells[6].Value.ToString();
                txtSalesNo.Text = dgvIncome.SelectedRows[0].Cells[7].Value.ToString();
                txtMainPackageNo.Text = dgvIncome.SelectedRows[0].Cells[8].Value.ToString();
                txtSubPackageNo.Text = dgvIncome.SelectedRows[0].Cells[9].Value.ToString();
                txtPackageNo.Text = dgvIncome.SelectedRows[0].Cells[10].Value.ToString();
                txtNatPrice.Text = dgvIncome.SelectedRows[0].Cells[11].Value.ToString();
                txtDiscount.Text = dgvIncome.SelectedRows[0].Cells[12].Value.ToString();
                dtpStartDate.Text = dgvIncome.SelectedRows[0].Cells[13].Value.ToString();
                dtpEndDate.Text = dgvIncome.SelectedRows[0].Cells[14].Value.ToString();
                ShowSalesName();
                ShowMainPackageName();
                ShowSubPackageName();
                ShowPackageName();
                ShowPrice();
                chbxSearch.Checked = false;
            }

Run Code Online (Sandbox Code Playgroud)

错误:选择一行时,有空值,

System.NullReferenceException: 'Object reference not set to an instance of an object.'

System.Windows.Forms.DataGridViewCell.Value.get returned null.
Run Code Online (Sandbox Code Playgroud)

c# datagridview

0
推荐指数
1
解决办法
8966
查看次数