问题标签 [datagridviewcolumn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
11567 浏览

c# - 使用 Radiobutton 列创建 DataGridView

我正在尝试创建一个由 Radiobuttons 托管的 DataGridView 列。我一直在关注这篇MSDN 文章。

尽管我已经更改了教程中的代码来编写自己的类,但它并没有按预期工作。问题是我不完全确定我错过了什么。编译时不会出错。但它显示为复选框而不是单选按钮。在此处输入图像描述

我已在此处附加了 Visual Studio 项目。对于那些不确定下载未知附件的人,这里是我写的 3 个类。

RadiobuttonColumn班级。它继承了DataGridViewColumn类。

UPDATED RadiobuttonCell类继承DataGridViewCell类。


该类RadiobuttonEditingControl继承RadioButton该类并实现IDataGridViewEditingControl接口的方法。

如果有人可以看看这个并指出我应该在代码中进行哪些更改的正确方向,我将不胜感激。

谢谢你。

0 投票
2 回答
2816 浏览

sql - 更改数据网格视图中的列格式

我有一个数据网格视图,我用数据库作为其数据源填充。但是,以日期为数据类型的列显示日期和时间,而我只需要时间。

如何更改数据网格视图表的格式?

0 投票
1 回答
1131 浏览

c# - 将 DataGridView 绑定到可能包含零个元素的 IBindingList

在 VS 2008 (.Net 3.5) 中使用 C# WinForms

我正在尝试将一个可能为空的列表绑定到数据网格。

如果列表有元素,并且启用了 AutoGenerateColumns,则数据将绑定到列表并且一切正常。

但是,如果列表为空,或者列表为空(通过删除最后一个元素),则什么都不会显示,只有灰色背景。

如果我手动创建列,例如:

列出现,我可以添加一个新行,但数据实际上并没有绑定,并且没有像通常在自动生成列时那样填充行的默认值。

当我离开视图并返回时,添加的行仍然存在,但数据不会保留。

将自动生成的列与调试器中手动创建的列进行比较,两者之间唯一不同的属性是 DataGridViewColumn 基类上的IsDataBound属性。

当 AutoGenerateColumns 启用时,IsDataBound 设置为 true,列表中有一个或多个元素,但如果列表的初始元素为零,则为 false,尽管列的 DataPropertyName 属性已正确设置。

有没有办法将空列表绑定到数据网格,并允许用户在空白列表中添加行,并且所有内容都正确绑定?

我什至尝试在绑定之前将一个元素添加到一个空列表中,让它自动生成并绑定列......但是一旦删除了行,列就会消失并且绑定丢失。

其他实施细节:

我正在尝试绑定一个自定义列表/集合类型的数据源,该类型继承自:

列表中的对象是从ICustomTypeDescriptor继承的动态对象,并将属性映射到字典中的值。这些类型在 ObjectDefinition 类中定义,该类知道动态类型的可用属性信息(属性名称、类型、属性等...)每个列表都有一个分配给它的定义,因此列表中的每个对象都有相同的定义。

我不认为这很重要,因为只要列表中至少有一个元素,一切都会正确绑定,并且可以正常工作。

0 投票
1 回答
221 浏览

c# - 在 DataGridView 中,一列有一个文件名,我希望每一行都有一个按钮,以允许用户输入/更改文件名和路径

DataGridView绑定到DataSet一个. 假设此示例只有一列。1 列是文件名。对于每一行,我需要打开FileOpenDialog以更改或更新文件名列。如何添加按钮?它必须在单独的列中还是可以在同一列中?

0 投票
3 回答
1524 浏览

c# - 如何更改放置在不同 TabControl 页面上的 datadridview 列宽度

我的表单上有一个 TabControl,有两页。每个页面都包含一个datagridview。如果Form.Load我从 SQL 数据库填充我的 datagridviews 并更改这些网格的某些列宽。

我的两个数据网格视图都从数据库中获取数据。对于我的第一个 datagridview,一切正常。但是,当我尝试在第二个 TabPage 上更改第二个 datagridview 的列宽时,我收到一条消息Object reference not set to an instance of an object。但为什么?在下面的屏幕截图中,您可以看到第二个 datagridview 的列名存在,但我无法更改它的列宽。

错误截图

我做错了什么?我的数据网格不是空的并且包含数据。我应该先激活我的 TabPage 还是其他东西?

0 投票
3 回答
4632 浏览

c# - How to remove sorting glyph in datagridview without removing Sorting facility

How can i remove sorting glyph from column headers in DataGridView without removing its sorting functionality.

I am working on windows form application in C#, i want to generate report from a datagridview, where datagridview column width will assign in report column, where as the DataGridView column include the with of sorting glyph, that is unnecessary space in my case, i want to exclude it from ColumnHeader.

0 投票
0 回答
353 浏览

c# - 自定义 DataGridViewColumn - 直到鼠标双击单元格才被绘制(可见)

我需要为 datagridview 构建一个自定义 DataGridViewColumn 所以......想象以下场景(骨架):

*PropertyEditor 是 National Instruments 的一个组件。这是单元格的内容。

所以我以编程方式创建一个列,然后添加:

我的问题是在 DefaultNewRowValue 中,this.propertyEditor 为 null 而不是通过参数传递的,因为添加列后会自动调用不带参数的 CustomCell 构造函数。我想用默认值初始化单元格,并将其作为参数传递。我怎样才能做到这一点?

谢谢。

0 投票
1 回答
147 浏览

c# - 从 c# 中的过程返回结果时,空格更改为“_”

我的表单中有存储过程和 DataGridView 的数据库。我想将过程结果绑定到 DataGridView 并且一切正常 - 表格正在填充过程的结果,但列有下划线(“_”)而不是空格。
例如:“Cookies count”显示为“Cookies_count”。

存储过程设置列名中的代码:
SELECT
Films.TitlePL as [Polish title],
Films.TitleOrg as [Original title],
FilmCategory.CategoryName as [Category name],
Films.ProductionYear as [Year of production],

带有参数和绑定到 DataGridView 的运行过程的 C# 代码在这里:

0 投票
2 回答
461 浏览

c# - 如何为 DataGridView 伪造“AlternatingColumnsDefaultCellStyle”?

DataGridView 有一个“AlternatingRowsDefaultCellStyle”,它就像一个冠军。但我需要相反的分界/装饰。是否有一个属性可以使列背景的颜色与默认颜色不同,或者我是否需要为 CellFormatting 事件编写代码,或者......?

更新

好的,这看起来很奇怪:

使用此代码,来自 Ascension:

...我得到:

“System.Windows.Forms.DataGridViewColumn”不包含“ItemStyle”的定义,并且找不到接受“System.Windows.Forms.DataGridViewColumn”类型的第一个参数的扩展方法“ItemStyle”(您是否缺少 using 指令还是汇编参考?)

但是,如果我只输入第一部分(dataGridView1.Columns[i].),我会通过 Intellisense 获得“ItemStyle”作为选择的有效选项,但是当我输入时它会变成红色(可能是 Resharper 效果)。之后的一个点允许选择 BackColor 属性,然后它不是红色的。

为什么会发生这种奇怪的行为,是否有解决方法?

并且:红色 Intellisense 项目是否表示无法访问,如果是,为什么会显示它们?“预告片”成员有什么价值吗?

更新 2

这很有效(受 Ascension 的启发,所以我给他/她正确的答案):

0 投票
2 回答
294 浏览

c# - 如何从我的 DataGridView 中删除“Column -1”?

我正在动态创建columnsmy 的 和 行DGV,然后cells用适当的值填充 。

尽管目前内容对于DataGridView(我设置ScrollBarsNone)来说太大了,但我的第一列向右偏移,在column应该为 0 的地方有一条黑条。什么属性可以移除这个入侵者?