标签: datagridview

Win窗体DataGridView动态添加按钮列

我想在填充 DataGridView 后动态添加一个按钮列。添加按钮列后可见,但是当我尝试循环遍历 DataGridView 行时,每个单元格中的按钮均为空。

var buttonCol = new DataGridViewButtonColumn();
buttonCol.Name = "ButtonColumnName";
buttonCol.HeaderText = "Header";
buttonCol.Text = "Button Text";

dataGridView.Columns.Add(buttonCol);

foreach (DataGridViewRow row in dataGridView.Rows)
{
    var button = (Button)row.Cells["ButtonColumnName"].Value;
    // button is null here!
}
Run Code Online (Sandbox Code Playgroud)

c# datagridview winforms

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

在 datagridview vb.net 中为组合框单元设置 selectedindex

我正在尝试selectedindex为我的datagridviewcomboboxcellthroughcellvaluechanged事件设置 ,即当我更改数据网格行中的某些值时,该列应自动更改。这是代码。

 Private Sub DataGridView1_CellValueChanged(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged

          Try       
                If Me.DataGridView1.Rows(e.RowIndex).Cells(2).Value.ToString <> Nothing Then
                    Me.DataGridView1("unit_code", e.RowIndex).Value = "1" 
                    MsgBox(Me.DataGridView1.Rows(e.RowIndex).Cells(6).Value)
                End If
            Else
                Exit Sub
            End If

        End If
    Catch ex As Exception
        MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try 
Run Code Online (Sandbox Code Playgroud)



我的 datagridview 绑定到数据集。搜索了许多站点并进行了所有研究,得到了上述解决方案,我们需要将其设置valuemember.value部分。即使在这样做之后,它也会给
system.formatexception:datagridviewcomboboxcell value is not valid.

请帮我。

[编辑]
表结构
unit_code    descp
0 -
1 nos
2 kgs
3 gms

[编辑 2]

 query = "select Switch(qty=0,'2',qty<=rcvd_qty,'1',rcvd_qty=0,'2',qty>rcvd_qty,'3') …
Run Code Online (Sandbox Code Playgroud)

vb.net datagridview datagridviewcomboboxcell

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

WinForm DataGridView 只有一行,尽管 DataSource 有两行或更多行

我为dataGridView的DataSource设置了一个List有2个元素,但它总是只有一行,RowCount属性为1。这太奇怪了

我下面的代码有一些实体类名称,我必须解释一下。

HoaDon is Order
ChiTietHoaDon is OrderDetail
SanPham is Product
Run Code Online (Sandbox Code Playgroud)

代码:

using GymFitnessOlympic.Controller;
using GymFitnessOlympic.Models;
using GymFitnessOlympic.Models.Util;
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;

namespace GymFitnessOlympic.View.ActForm
{
    public partial class FrmBanHang2 : Form
    {
        List<SanPham> allSanPham;
        List<ChiTietHoaDon> allChiTiet = new List<ChiTietHoaDon>();
        HoaDon hoaDon = new HoaDon();

        public FrmBanHang2()
        {
            InitializeComponent();
            int phongID = Login.GetPhongHienTai().MaPhongTap;
            allSanPham = SanPhamController.GetList(phongID);
            dgrChiTiet.AutoGenerateColumns = false;
            dgrChiTiet.AutoGenerateColumns = false;
            loadListSanPham(allSanPham);
        }

        void loadListSanPham(List<SanPham> li)
        {

            lbSanPham.DataSource …
Run Code Online (Sandbox Code Playgroud)

c# datasource datagridview row winforms

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

如何在 DataGridView 中为一列密码设置字符

我正在尝试在表中加载时对列进行密码字符化。

下面的代码加载表。

//Fills out Student table
private void loadStudentTable()
{
    SqlConnection conn2 = new SqlConnection(@"Data Source=(LocalDB)\v11.0; AttachDbFilename=C:\Users\Donald\Documents\Visual Studio 2013\Projects\DesktopApplication\DesktopApplication\Student_CB.mdf ;Integrated Security=True");
    conn2.Open();

    try
    {
        SqlCommand cmdDatabase2 = new SqlCommand("Select * from Student", conn2);
        SqlDataAdapter sda2 = new SqlDataAdapter();
        sda2.SelectCommand = cmdDatabase2;
        DataTable dbdataset2 = new DataTable();
        sda2.Fill(dbdataset2);
        BindingSource bSource2 = new BindingSource();
        bSource2.DataSource = dbdataset2;
        studentGridView.DataSource = bSource2;
        sda2.Update(dbdataset2);
        studentGridView.Columns[0].Width = 92;
        studentGridView.Columns[1].Width = 200;
        studentGridView.Columns[2].Width = 180;
        studentGridView.Columns[3].Width = 180;
        studentGridView.Columns[4].Width = 170;
        studentGridView.Columns[5].Width = 170;
        studentGridView.Columns[6].Width = 130; …
Run Code Online (Sandbox Code Playgroud)

c# datagridview password-protection

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

在数据网格视图中添加多个按钮

我需要在 WPF 应用程序的数据网格视图的单个列中添加多个按钮!在 windows 窗体应用程序中,它可以这样做。该数据网格视图将从数据库加载。同时,每行将需要添加2个命令按钮。在此处输入图片说明

请任何人提供一种方法来实现这一点!

谢谢

c# wpf datagridview wpf-controls

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

Visual C#中的DatagridView单元格单击事件

我正在学习,Windows Visual C#所以我对此很陌生。我有我的 DataGridView 的单元格单击事件的代码

 private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
    {
      con.  ID = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString());
      txtname.Text = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString();
      txtlname.Text = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
    }
Run Code Online (Sandbox Code Playgroud)

问题是: 即使我单击 DataGridView 多少次,它也不会触发我的断点。如何解决这个问题?

c# vb.net datagridview winforms

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

Datagridview 背景色在第一次加载时不起作用

我的表单的加载事件中有一个方法可以绑定 datagridview。当绑定 datagridview 时,我修改了一些背景色行。

在我使用绑定之前Me.SuspendLayout()和完成时我使用Me.ResumeLayout.

当我的表单第一次加载时,所有行都使用defaultCellStyle. 但是,当我通过组合框上的事件重新加载它时,它按我的预期工作(某些行具有修改后的背景色)。我试图以编程方式更改我的组合框的 selectedIndex 但它也不起作用。

我试图删除布局方法,但它也不起作用。有人可以给我建议吗?

顺便说一下,我正在 VB.NET (Visual Studio 2010) 中进行开发。

编辑 :

Private Sub frm_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    Me.SuspendLayout()
    loadDTGV()
    Me.ResumeLayout()
    myCombo.SelectedIndex = 1
End Sub


Private Sub loadDTGV()
    Dim dtBindSource As New BindingSource()

    Dim lst As SortedBindingList.SortedBindingList(Of myClass)
    lst = _DAO.getData()
    dtBindSource.DataSource = lst
    dtgv.DataSource = dtBindSource

    If dtgv.Rows.Count > 0 Then
        colorRows()
    End If
End Sub


Private Sub colorRows()
    Dim …
Run Code Online (Sandbox Code Playgroud)

vb.net datagridview winforms

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

如何在 Windows Form C# 的 DataGridView 中更改“排序字形图标”颜色?

我默认更改了列标题颜色。现在,我想在排序时更改 Windows Form C# 的 DataGridView 中的“排序字形图标”颜色:

在此处输入图片说明

见上图。该列已排序,但图标的颜色使其可见性不足。

请让我知道它的颜色是否可以改变。谢谢!

c# sorting datagridview winforms datagridcolumnheader

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

如何将 DataSet 中的所有表绑定到 DataGrid

我试图将DataSet每个表中的表绑定到他们自己的表DataGrid,但我不确定如何去做,这是我尝试过的:

<ListView ItemsSource="{Binding CalibrationData.CalibrationValuestoWrite}">

    <DataGrid ItemsSource="{Binding}">
    </DataGrid>

</ListView>
Run Code Online (Sandbox Code Playgroud)

也许我需要创建一个DataTemplate? 任何帮助是极大的赞赏!

c# wpf xaml datagridview

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

C# 将 DataGridView 保存到文本文件

我目前正在尝试第一次使用 datagridview,到目前为止我已经设法用它做很多事情(例如导入文本文件)但是,我在尝试将 datagridview 的内容保存到文本文件时遇到了麻烦。

我目前得到的输出是:

    0,
 Cat,
 Yes,
10,
20,
30,
40,
50,
1,
 Dog,
 No,
10,
20,
30,
40,
50,
Run Code Online (Sandbox Code Playgroud)

我希望导出看起来像这样:

0, Cat, Yes, 10, 20, 30, 40, 50
1, Dog, No, 10, 20, 30, 40, 50
etc.
Run Code Online (Sandbox Code Playgroud)

这是我目前使用的代码:

using (TextWriter tw = new StreamWriter("example.txt"))
{
    for(int i = 0; i < dataGridView1.Rows.Count - 1; i++)
                {
                    for(int j = 0; j < dataGridView1.Columns.Count; j++)
                    {
                        tw.WriteLine($"{dataGridView1.Rows[i].Cells[j].Value.ToString()},");
                    }
                }
    }
Run Code Online (Sandbox Code Playgroud)

这里有人能帮我解决这个问题吗?谢谢!

c# datagridview export text-files export-to-text

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