Tag: datagridview

如何设置DataGridViewComboBox列的值?

我想知道如何设置DataGridViewComboBox单元格的值。 我已经将DataGridViewComboBox与DataSource绑定在一起。 但是我想为这个数据源设置新值。 这是我到目前为止: gvList.Rows[0].Cells[0].value = “Select”; 但它抛出一个错误说: 格式exception:DataGridViewComboBox单元格值无效 。 我怎么能没有错误地实现这个目标?

使用sql查询结果填充datagridview

我正在尝试提供查询结果,但我一直在获取空白数据网格。 这就像数据本身不可见 这是我的代码: private void Employee_Report_Load(object sender, EventArgs e) { string select = “SELECT * FROM tblEmployee”; Connection c = new Connection(); SqlDataAdapter dataAdapter = new SqlDataAdapter(select, c.con); //c.con is the connection string SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter); DataTable table = new DataTable(); table.Locale = System.Globalization.CultureInfo.InvariantCulture; dataAdapter.Fill(table); bindingSource1.DataSource = table; dataGridView1.ReadOnly = true; dataGridView1.DataSource = […]

什么事件在DataGridViewCell中的combobox中捕获了值的变化?

我想在DataGridView单元格中的ComboBox中更改值时处理该事件。 有CellValueChanged事件,但是在我点击DataGridView其他地方之前,该事件才会触发。 SelectedValueChanged新值后,会立即触发一个简单的ComboBox SelectedValueChanged 。 如何将监听器添加到单元格内的combobox中?

用大量数据填充DataGridView的最佳方法

我有一个Windows窗体,有两个DataGridViews(DGV),每个将包含25,000多条记录和21列。 我已经使用DataAdapter成功地从数据库加载了数据,然后我尝试使用for循环填充DGV。 每种方法花费的时间大致相同。 第一次将数据填入DGV时需要太长时间(7分钟以上),然后随后的时间更合理(~30秒)。 所以我的问题是,加载具有大量数据的DGV的最佳方法是平均<= 1分钟? 我非常喜欢DGV的功能,但是如果推动推动我愿意使用不同的技术,即使这意味着放弃了一些功能。

绑定到BindingList的DataGridView在值更改时不会刷新

我有一个绑定到BindingList(C#Windows窗体)的DataGridView。 如果我更改列表中某个项目中的某个值,则不会立即显示在网格中。 如果我点击更改的单元格,或最小化然后最大化它正确更新的窗口,但我需要它自动发生。 我之前遇到过同样的问题,但在那种情况下,我必须在值改变的同时更改单元格的背景颜色。 这导致单元格正确刷新。 我能让它发挥作用的唯一方法是…… dataGridView.DataSource = null; dataGridView.DataSource = myBindingList …但我真的想避免这种情况,因为它会使滚动条弹回到顶部,这意味着我必须再次设置我的单元格背景颜色。 当然有更好的方法。 我尝试过刷新(以及刷新父级),更新和无效,但他们没有做我需要的事情。 我已经在一些留言板上看到了这个问题,但还没有看到它的工作答案。

c#将DataGridView保存到Xml文件

这是我保存文件的按钮: private void metroButton12_Click(object sender, EventArgs e) // save { DataSet ds = (DataSet)dataGridView1.DataSource; SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = “XML|*.xml”; if (sfd.ShowDialog() == DialogResult.OK) { try { ds.Tables[0].WriteXml(sfd.FileName); } catch (Exception ex) { Console.WriteLine(ex); } } } 我尝试将我的datagridview保护为XML,但是当我选择文件时没有什么好处。 当我启动控制台时,我看到:System.NullReferenceException:对象引用未设置为对象实例。 我的gridview看起来像:ID Name 1 Michale 2 Noob 我在这里做错了什么?我在网上看到很多东西但在stackoverflow和其他论坛中找不到任何解决方案。 请耐心等待新手们。 谢谢!

DataGridView没有列

这是c#windows表单。 我有一个数据网格视图,应该显示两列,文件名和修改日期。 我这样做的方式是通过一项任务。 我还有一个只包含文件和路径名,bindingsource和数据网格视图的类。 此任务运行一个传递类的方法。 一旦任务完成,该类应该有一个网格视图,然后我可以在窗体上设置为gridview。 这个类看起来像这样: class GetLogFilesParameters { public string FileNameandPath; public BindingSource BindingSource; public DataGridView GridView; public GetLogFilesParameters(string _fileNameAndPath) { FileNameandPath = _fileNameAndPath; BindingSource = new BindingSource(); GridView = new DataGridView(); GridView.DataSource = BindingSource; } } 我的任务调用的方法如下所示: private static void GetLogFilesTest(GetLogFilesParameters FormFields) { Cursor.Current = Cursors.WaitCursor; try { //Setup data table DataTable […]

C#DataGridView使用Generic List作为基础源进行排序

我正在使用Windows窗体DataGridView来显示MyObject对象的通用列表。 首先,我将此集合包装到BindingSource集合中,然后: dataGridView.DataSource = myBindingSource; 我想要做的是允许用户通过单击表示MyObject中具体属性的列的标题对列进行排序。 我读过一些文章,我应该在绑定之前进行排序。 但是,如果我想实时对列进行排序,那么它就无法帮助我。 问题是,我到底需要做什么,所以我可以看到 DataGridView中的排序箭头 , 我可以对每一列进行排序 ?

部署到“C:\ Program Files \ …”后,我的应用程序无法更新Access数据库

我已经部署了我的应用程序以备另一个用户(另一台计算机)使用,但是当我尝试将数据添加到数据库时,我得到了错误 操作必须使用可更新的查询 错误是这样的(这是我已经部署我的程序并在应用程序下运行,而不是在Visual Studio下运行): 但它在视觉工作室下运行得很好,像这样的图像(注意,一旦我点击提交按钮,它就应该存储在数据库中,并将其显示在datagridview上,如下图所示): 而且我还有另一个问题,删除function没有运行,添加和删除错误出现在我部署我的程序后,但我会在另一个线程上发布。 我该如何解决这个问题?

DataGridView没有显示实现ICustomTypeDescriptor的对象的正确性

我在DataGridView中显示对象列表。 一切都很好。 根据对象的属性将列自动添加到DataGridView中 。 现在我改变了我在网格中显示的类来实现ICustomTypeDescriptor 。 但是现在,当我将其DataSource设置为我的自定义对象列表时,网格现在不再显示任何列或行。 我猜这与ICustomTypeDescriptor的事实有关,每个网格的每一行中显示的每个实例都可以返回一组不同的属性。 我正在实现ICustomTypeDescriptor,以便我可以允许用户在运行时动态地向对象添加自定义属性。 这些自定义属性应该是可见的,并可通过DataGridView进行编辑。 为什么DataGridView看不到我的ICustomTypeDescriptor方法? 有没有其他方法可以动态地将属性添加到将在DataGridView中显示的对象?