Tag: datagridview

禁用除滚动之外的DataGridView

我如何配置datagridview,以便用户只能在行中移动并使用滚动,而不是其他…如果我禁用网格不允许我使用滚动

将不同的DataGridView单元格类型添加到列

目标 我的datagridview有两列([问题],[答案])。 根据已知的问题类型 ( 是/否 复选框 , 文本文本 框 , 文件上载 按钮 ),我希望列单元格具有相应的控件 。 例 Datagridview行: [问题]你吸烟吗? [答案]( YesNo Checkbox ) [问题]你多大了? [答案]( 文字文字 框 ) [问题]文件上传[答案]( FileUpload 按钮 ) 工作 我以编程方式创建我的datagridviews。 Private Sub FormatQuestionDgv(ByVal dgv As DataGridView) Dim ColQ As New DataGridViewTextBoxColumn Dim ColA As New DataGridViewColumn ‘Header text ColQ.HeaderText = “Question” ColA.HeaderText = […]

重载后DataGridView保存过滤

我在C#中遇到DataGridView的问题。 案例是: 我在数据库上做了一些更新,然后用新值重新加载DataGridView: myDataGridView.DataSource = myDataSet.Tables[0] 一切都还可以,但最近我被问到是否有可能在重新加载数据后保持应用相同的列过滤? 这个过滤案例的方法是什么? 谢谢你的任何想法。

在DataGridView上移动行时的可视标记

用户在我的DataGridView中上下拖动行。 我有拖动逻辑,但我希望有一个黑色标记,指示在放开鼠标后行将放置在哪里。 Microsoft Access中的示例http://img718.imageshack.us/img718/8171/accessdrag.png Microsoft Access中的示例; 我想拖动行而不是列 有谁知道我该怎么做呢? 这是内置的,还是我必须绘制自己的标记(如果是这样,我该怎么做)? 谢谢!

如何在datagridview中更改列的颜色?

我有一个DataGridview,我将一些列设置为readonly用于数据输入目的。 当我这样做时,该列保持正常的白色(虽然它不允许进入)。 如何将色谱柱着色? 我已经看到了很多关于如何为行着色的样本,而不是列。 如何使只读列看起来是灰色的?

DatagridView选择最后一行

我在设置datagridview中的最后一行时遇到了一些麻烦。 我这样选择最后一行: if (grid.Rows.Count > 0) { try { grid.Rows[grid.Rows.Count – 1].Selected = true; grid.CurrentCell = grid.Rows[grid.Rows.Count – 1].Cells[1] } catch (IndexOutOfRangeException) { } catch (ArgumentOutOfRangeException) { } } 当我执行此代码时,我得到一个exception: IndexOutOfRangeException occurred :Index-1没有值。 当我调试Rows集合和相应的Cells集合时,我看到两个集合都已填充。 该索引还存在Rows和Cells集合。 我不知道我在这里做错了什么。 谁可以帮助我在这里? 日Thnx 编辑: 这是完整的例外: System.IndexOutOfRangeException: Index -1 does not have a value. at System.Windows.Forms.CurrencyManager.get_Item(Int32 index) at System.Windows.Forms.CurrencyManager.get_Current() at System.Windows.Forms.DataGridView.DataGridViewDataConnection.OnRowEnter(DataGridViewCellEventArgs […]

C# – DatagridView和ContextMenu

我有一个datagridview,我在其中显示有关产品的信息。 我想在用户选择一个单元格然后右键单击该单元格时绑定一个上下文菜单。 我有另一个contextmenu,并且一个绑定到datagridview的列。 如果用户右键单击上下文菜单显示的列。 我试过这样但是它不起作用。 上下文菜单显示用户右键单击单元格的时间,但绑定到列标题的上下文菜单不起作用。 private void GridView1_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e) { if (e.Button == MouseButtons.Right) { productContextMenu.Show(GridView1, e.Location); } } 如何使用当用户右键单击datagridview时显示? 很多人提前。 编辑 Thnx的答案。 我解决了这个问题: private void GridView1_MouseUp(object sender, MouseEventArgs e) { DataGridView.HitTestInfo hitTestInfo; if (e.Button == MouseButtons.Right) { hitTestInfo = GridView1.HitTest(eX, eY); if (hitTestInfo.Type == DataGridViewHitTestType.Cell) { productContextMenu.Show(GridView1, e.Location); } } } […]

如何使用sql语句中的列绑定dataGridView预定义列(不添加新列)?

有一种优雅的方法,将预定义的dataGridView列与SQL语句的结果绑定在一起吗? 例: dataGridView1.Columns.Add(“EID”, “ID”); dataGridView1.Columns.Add(“FName”, “FirstName”); 有些SQL喜欢 SELECT t.FirstName AS FName, t.EmpID AS EID FROM table t … 然后我打电话 dataGridView1.DataSource = someDataSet.Tables[0].DefaultView; 最后一次调用将列添加到我的数据网格中,但我只想按列名绑定它而不是添加新列。 该示例将给出如下结果: 表列:ID,FirstName,FName,EID(ID和FirstName包含空单元格) 怎么弄这个: Table columns: ID, FirstName or FirstName, ID 最好的祝福!

由于DataGridViewImageColumn,DataGridView在默认错误对话框中抛出exception

我这样做是因为在网上找到答案花了太长时间,这可能是一个常见问题 – 这是我第二次在我的应用程序上体验过它。 当具有DataGridViewImageCell的新行变得可见,并且它没有设置默认值时,我的DataGridView将抛出以下exception: DataGridView中发生以下exception: System.ArgumentException:参数无效。 在System.Drawing.Image.FromStream(Stream stream,Boolean useEmbeddedColorManagement,Boolean validateImageData)“ 在我的设置中,我在Visual Studio Designer中创建DataGridViewImageColumns,然后通过设置DataGridViewImageColumns的DataPropertyName属性以匹配Type:byte []的DataColumns,将这些列绑定到DataTable中的DataColumns。 但是,当新行中的DataGridViewImageColumn变为可见时,它仍会抛出此exception。 有两种解决方法对我有用: 取消选中Designer中的“启用添加”选项 – 然后以编程方式添加行 – 使用按钮等 – 我认为这是我第一次做的。 处理DataGridView的DataError事件,如下所示: private void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e) { if (dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value == DBNull.Value) { e.Cancel = true; } } 这是我现在要选择的选项,但我不是压制Exceptions的粉丝,我可以看到由于Handler的throw + Catch而导致DataGridView行的创建延迟。 MSDN( http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewimagecolumn.aspx )表示您可以处理RowsAdded事件并强制使用空值。 我试过这个: private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) { […]

是否可以在不包装文本的情况下使用多行DataGridView单元格?

我知道我可以在RowTemplate的DefaultCellStyle上将DefaultCellStyle设置为true,但这并没有给我我想要的行为。 我在每个单元格中显示一个字符串列表,因此我希望识别回车符,但我不希望长项目包装的文本。 有谁知道是否有可能实现这一目标?