标签: datagridview

动态更改datagridview单元格颜色

我有一个填充了数据的dataGridView对象.我想点击一个按钮,让它改变单元格背景的颜色.这就是我现在拥有的

foreach(DataGridViewRow row in dataGridView1.Rows)
{
    foreach(DataGridViewColumn col in dataGridView1.Columns)
    {
            //row.Cells[col.Index].Style.BackColor = Color.Green; //doesn't work
            //col.Cells[row.Index].Style.BackColor = Color.Green; //doesn't work
        dataGridView1[col.Index, row.Index].Style.BackColor = Color.Green; //doesn't work
    }
} 
Run Code Online (Sandbox Code Playgroud)

所有这三个都会导致表格以重叠的方式重新绘制,并且尝试重新调整表格的大小变得一团糟.单击单元格时,值仍然突出显示,背景颜色不会更改.

问:如何在表存在后更改单个单元格的背景颜色?

c# datagridview dynamic cell backcolor

21
推荐指数
2
解决办法
12万
查看次数

如何手动下拉DataGridViewComboBoxColumn?

我的WinForms应用程序中有一个DataGridView和一个DataGridViewComboBoxColumn.我需要手动下拉(打开)这个DataGridViewComboBoxColumn,比如单击一个按钮后.

我需要这个的原因是我已将SelectionMode设置为FullRowSelect,我需要单击2-3次才能打开组合框.我想点击组合框,它应该立即下拉.我想用CellClick事件做这个,或者还有其他方法吗?

我在Google和VS帮助中搜索,但我还没有找到任何信息.

有人可以帮忙吗?

.net datagridview

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

在Datagridview中启用和禁用单元格

我正在使用DataGridView控件来显示一些数据.我需要启用一些数据并根据网格中的某些值动态禁用某些数据.

谁能告诉我怎么做?

.net datagridview

20
推荐指数
2
解决办法
7万
查看次数

我们如何在winform中的datagridview中进行分页

我想在窗口表单的datagridview中显示每页10条记录,用户必须单击下一步按钮才能显示下10条记录.是否在DataGridview中有一些属性或者我是否需要创建自定义控件.

我需要做些什么来实现这一目标.

c# pagination datagridview custom-controls winforms

20
推荐指数
2
解决办法
7万
查看次数

单击即可打开下拉列表(在数据网格视图中)

我怎样才能避免双击一个DropDownButton用过的DataGridView?现在,我可以DataGridView通过单击两次或更多次来查看其中的下拉项.第一次选择单元格,第二次单击DropDownButton箭头时,它显示列表.如何通过一次点击实现同样的目标?

c# datagridview winforms datagridviewcomboboxcell

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

取消选择datagridview中的所有行

我有两个datagridviews,当我点击其中一个时,我想在第二个datagridview中取消选择所有选择,我试过这个,但没有任何作用:

firstItemsDataGridView.ClearSelection();
firstItemsDataGridView.CurrentCell = null;
Run Code Online (Sandbox Code Playgroud)

不工作,

firstItemsDataGridView.ClearSelection();
if (firstItemsDataGridView.Rows.Count > 0)
    firstItemsDataGridView[1, 0].Selected = true;
firstItemsDataGridView.CurrentCell = null;
firstItemsDataGridView.ClearSelection();
foreach (DataGridViewRow item in firstItemsDataGridView.Rows) {
    item.Selected = false;

    foreach (DataGridViewCell itemCell in firstItemsDataGridView.Columns) {
        itemCell.Selected = false;
    }
}
Run Code Online (Sandbox Code Playgroud)

不工作,

firstItemsDataGridView.Rows[0,-1].Selected = true;
Run Code Online (Sandbox Code Playgroud)

不工作.

我已经将选择模式设置为全行选择,我不知道如何实现我的目标.
非常感谢!

c# datagridview rows selection winforms

20
推荐指数
2
解决办法
6万
查看次数

至少有一个DataGridView控件的列没有单元格模板

我得到了那个例外.

System.InvalidOperationException was unhandled
  Message=At least one of the DataGridView control's columns has no cell template.
  Source=System.Windows.Forms
  StackTrace:
       at System.Windows.Forms.DataGridView.CompleteCellsCollection(DataGridViewRow dataGridViewRow)
       at System.Windows.Forms.DataGridView.get_RowTemplateClone()
       at System.Windows.Forms.DataGridView.RefreshRows(Boolean scrollIntoView)
       at System.Windows.Forms.DataGridView.RefreshColumnsAndRows()
       at System.Windows.Forms.DataGridView.OnBindingContextChanged(EventArgs e)
       at System.Windows.Forms.Control.OnParentBindingContextChanged(EventArgs e)
       at System.Windows.Forms.Control.OnBindingContextChanged(EventArgs e)
       at System.Windows.Forms.Control.set_BindingContextInternal(BindingContext value)
       at System.Windows.Forms.ContainerControl.set_BindingContext(BindingContext value)
       at System.Windows.Forms.ContainerControl.get_BindingContext()
       at System.Windows.Forms.Control.get_BindingContextInternal()
       at System.Windows.Forms.Control.get_BindingContext()
       at System.Windows.Forms.DataGridView.DataGridViewDataConnection.SetDataConnection(Object dataSource, String dataMember)
       at System.Windows.Forms.DataGridView.set_DataSource(Object value)
       at Bloowars_Tools.A1_ResultWnd.A1_ResultWnd_Shown(Object sender, EventArgs e) in D:\Documents\Visual Studio 2010\Projects\Bloowars Tools\Bloowars Tools\A1_ResultWnd.cs:line 72
       at System.Windows.Forms.Form.OnShown(EventArgs e)
       at System.Windows.Forms.Form.CallShownEvent()
       at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
       at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj) …
Run Code Online (Sandbox Code Playgroud)

c# collections datagridview exception winforms

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

无法设置数据网格视图的行可见false

我有一个DataGridView我设置的地方DataSource:

taskerEntities te = new taskerEntities();
var OMsMasterDescriptiveIndicators = te.MyTable.Select(x => new lccls {Id = x.Id, name = x.name }).ToList();
MyGrid.DataSource = OMsMasterDescriptiveIndicators;
Run Code Online (Sandbox Code Playgroud)

和我class lccls一样

public class lccls
    {
        public string Id { get; set; }
        public Nullable<decimal> name { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

在某个事件中,我想让当前行不可见:

 MyGrid.Rows[5].Visible = false;
Run Code Online (Sandbox Code Playgroud)

但我无法做到这一点.而是抛出异常,并显示以下错误消息:

与货币经理的头寸相关联的行不能隐藏

我怀疑原因与设置有关DataSource,但为什么呢?

c# datasource datagridview

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

是否可以防止DataGridView中的多行HeaderText?

HeaderText属性的长度达到某个字符限制并且文本中有空格时,WinForms会自动在标题中插入一个链接中断:

我想要的是:

+-----------------------+---
| Measurement Value (%) | ...
+-----------------------+---
Run Code Online (Sandbox Code Playgroud)

我得到了什么:

+-----------------------+---
| Measurement Value     | ...
|(%)                    |
+-----------------------+---
Run Code Online (Sandbox Code Playgroud)

有足够的空间来显示所有标题单元格而不会断行,但无论出于何种原因,即使我设置了AutoSizeModeto,它仍然会被插入HeaderCell.

如何在保持空格的同时防止这些换行HeaderText

.net datagridview header width winforms

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

为什么我的ColumnHeadersDefaultCellStyle会继续在Visual Studio设计器中重置?

我试图在Visual Studio 2008中使我的DataGridView的列标题变粗.

每次我将ColumnHeadersDefaultCellStyle更改为Calibri 9.75pt粗体时,使用属性框,下次重新打开保存的表单时,ColumnHeadersDefaultCellStyle已恢复为Calibri 9.75而不加粗体.

我的表单的字体是Calibri 9.75,没有粗体,我的默认单元格样式,但我应该能够使用我的ColumnHeader样式覆盖默认单元格样式吗?

我可以通过在显示表单时设置样式来以编程方式解决此问题,但我们希望Visual Studio设计器显示粗体标题,因此我们可以针对由粗体标题文本占用的空间适当地布置列.

此外,实际的设计器文件指定ColumnHeadersDefaultCellStyle是粗体,即使设计器界面说它不是粗体.

dataGridViewCellStyle1.Font = new System.Drawing.Font("Calibri", 9.75F,  
    System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True;

this.receiptDetailView.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
Run Code Online (Sandbox Code Playgroud)

datagridview visual-studio-2008 visual-studio winforms

19
推荐指数
2
解决办法
2万
查看次数