jjzjj

dataGridView

全部标签

c# - 设置 cell.ReadOnly 无效

我有一个DataGridView,我想通过设置ReadOnly=true禁用一些单元格/行。有时这不起作用并且单元格/行仍然可编辑的原因可能是什么?还有其他方法可以防止编辑特定行或单元格吗?是否可以防止单击或输入单元格? 最佳答案 您可以使用CellBeginEdit来阻止编辑事件。如果您不想编辑单元格,可以取消编辑。例如,如果您只希望第一列是可编辑的,您可以这样做:privatevoiddataGridView1_CellBeginEdit(objectsender,DataGridViewCellCancelEventArgse

c# - 如何在绑定(bind)到数据源的datagridview中添加新行

这个问题在这里已经有了答案:Howtoprogrammaticallyaddarowtoadatagridviewwhenitisdata-bound?(4个答案)关闭6年前。我有一个绑定(bind)到数据源的数据GridView。当我单击“编辑”按钮或“新建”按钮时,我必须在datagridview中添加一个新行。我尝试了一些代码,但它给我错误,代码如下所示DataGridViewgrdview=newDataGridView();grdview.Rows.Add();grdview.Rows[grdview.Rows.Count-1].Cells[0].Selected=true;

c# - Windows 窗体 DataGridView 是否实现了真正的虚拟模式?

我有一个SQL表,其中包含当前100万行,这些行会随着时间的推移而增长。有一个特定的用户要求来呈现一个可排序的网格,该网格显示所有行而不分页。用户希望能够使用滚动条非常快速地从一行跳到另一行,从上跳到下。我熟悉“虚拟模式”网格,它只呈现整体数据的可见子集。它们可以提供出色的UI性能和最低的内存要求,(我什至在很多年前使用这种技术实现了一个应用程序)。Windows窗体DataGridView提供了一种看起来应该是答案的虚拟模式。然而,与我遇到的其他虚拟模式不同,它仍然为每一行分配内存(在ProcessExplorer中确认)。显然,这会导致整体内存使用量不必要地大幅增加,并且在分配这些

c# - DataGridView - 使用 DataPropertyName 显示子元素属性

让图像显示我有以下类(class)publicclassMaster{publicstringMasterName="Something";publicListdetails=newList();}publicclassDetail{publicstringFoo="Test";}然后我想使用下面的代码在DataGridView中显示Details对象的集合DataGridViewTextBoxColumncolumn=newDataGridViewTextBoxColumn();column.DataPropertyName="Details.Foo";column.HeaderTe

c# - 检查滚动条是否在数据 GridView 中可见

如果数据GridView很长并显示滚动条,我想显示一些内容,但不知道如何检查滚动条是否可见。我不能简单地添加行,因为有些行可能不可见。我无法使用事件,因为我的代码已经在事件中。 最佳答案 你可以试试这个:foreach(varscrollindataGridView1.Controls.OfType()){//yourcheckinghere//specifically...if(scroll.Visible)} 关于c#-检查滚动条是否在数据GridView中可见,我们在StackOv

C# Datagridview 不对 Checkbox 列进行排序

当我将Linq-to-sql查询绑定(bind)到datagridview(在两者之间使用BindingSource)时,列默认是可排序的。但是,bool类型似乎并非如此。对于这些数据GridView使用复选框列,但是当我单击标题时没有任何反应。解决方案有人吗? 最佳答案 在VS2012的设计器中你也可以设置SortMode。右键单击DataGridView并转到“编辑列”。SortMode有一个下拉菜单,可以选择NotSortable、Automatic和Programmatic。似乎大多数列的默认值是自动的,但对于复选框(boo

c# - 在C#中计算不规则多边形的面积

我已经设法写了一个“傻瓜”如何在C#中计算不规则多边形的面积,但我需要它对于任何数量的顶点都是动态的。有人可以帮忙吗?类:publicclassVertex{privateint_vertexIdx;privatedouble_coordX;privatedouble_coordY;privatedouble_coordZ;publicVertex(){}publicVertex(intvertexIdx,doublecoordX,doublecoordY,doublecoordZ){_vertexIdx=vertexIdx;_coordX=coordX;_coordY=coordY;

c# - 我想以编程方式在 C# 中生成对 DataGridView 行的单击

我在表单中有一个DataGridView,我想以编程方式单击它的第一行。我找到了从代码中选择其行或列的代码。例如。datagridview.Columns[0].Selected=true;datagridview.Rows[0].Selected=true;然而,此代码并未引发数据GridView上的click事件。如果有人编写了如何从代码中单击数据GridView的代码,请提供您的帮助。 最佳答案 只需调用事件处理程序方法,例如:datagridviewRowClickedEventHandler(newobject(),new

c# - 如何将复选框作为 dataGridView 的 ColumnHeader

我正在使用C#VS2005开发一个窗口应用程序。我有一个dataGridView,其中第一列有复选框。现在我希望列标题也成为一个复选框,如果我选择列中的所有Checkboxex应该被选中。我怎样才能做到这一点。?我提到了CodeProjectlink但是如果我使用它,如果我单击FirstCell(不是页眉),下面的所有单元格都会被选中。但我想在列标题中有一个复选框。我该怎么做? 最佳答案 我还需要在DataGridView列的列标题中有一个CheckBox。这是我的做法:创建一个继承自DataGridViewColumnHeader

c# - 如何设置datagridview列的最大长度

我有一个DataGridView,可以在TextBox列中输入单位。如何将此列的输入长度限制为6个字符? 最佳答案 使用MaxInputLengthDataGridViewTextBoxColumn的属性。此属性可通过设计器或代码获得:((DataGridViewTextBoxColumn)dataGridView1.Columns[yourColumn]).MaxInputLength=6; 关于c#-如何设置datagridview列的最大长度,我们在StackOverflow上找到