Tag: datagridview

DataGridView Scroll事件(和ScrollEventType.EndScroll)

处理DataGridView.Scroll事件时,您可以检查它是否是滚动的结尾(当使用鼠标拖动滚动条时,这可能是在释放鼠标按钮时)。 问题是这似乎永远不会发生。 e.Type永远不会是ScrollEventType.EndScroll 这有什么问题? 如何滚动完成后我该怎么办? private void dataGridView_Scroll(object sender, ScrollEventArgs e) { if (e.Type == ScrollEventType.EndScroll) { // … } }

DataLinkrid中的HyperLinks

我正在研究C#应用程序,它就像一个小型搜索引擎。 用户将输入一个单词,程序将返回包含该单词的文件。 我有一个文件路径数组(作为字符串),我想将这些路径显示为DataGridView链接,这样当用户单击文件名时,文件将被打开。 注意:我正在使用C#Winforms,而不是ASP.net

如何在datagridview列中显示枚举值

我有这个数据库,不是我的设计,但我必须使用它,它包含一个像这样的表: id | 名称| 状态| … —– + ———— + ———- + —— 1 | 产品1 | 2 | … 2 | 产品2 | 2 | … 3 | 产品3 | 3 | … …… | …… | …… | … status属性是指枚举所在的位置 0 =无效 1 =开发 2 =激活 3 =老 当我在只读datagridview中显示它时,我希望用户看到枚举的名称(Dev,Activ,…)或描述而不是数值。 datagridview绑定到来自DAL的数据表,同样不属于我的设计,因此我无法真正更改数据表。 我发现如何做到这一点的唯一方法是通过监听datagridview.CellFormating事件,我把这个代码: private void […]

将数组的所有元素添加到除一个之外的datagridview行

我正在逐行读取文本文件,并将其插入到数组中。 然后,我有一个名为custIndex的列表,它包含某些索引,我正在测试的items数组的索引,看它们是否是有效的代码。 (例如,custIndex [0] = 7,所以我检查项目[7-1]中的值,看看它是否有效,在我这里的两个词典中)。 然后,如果代码无效,我将行(items数组)添加到dataGridView1。 问题是,dataGridView1中的一些列是combobox列,因此用户可以选择正确的值。 当我尝试添加items数组时,我得到一个exception:“DataGridView中发生以下exception:System.ArgumentException:DataGridViewComboBoxCell值无效。” 我知道使用正确的数据源正确添加了combobox,因为如果我只是将items数组中的一些项添加到dataGridView1,就像items [0]一样,combobox显示正常,并且没有抛出exception。 我想问题是当我尝试将items数组中的错误值添加到dataGridView1行时。 我不知道如何处理这件事。 有没有办法可以添加除该值之外的所有项目? 或者我可以从项目中添加值并将其显示在combobox单元格中,以及填充的下拉项目吗? if(choosenFile.Contains(“Cust”)) { var lines = File.ReadAllLines(path+”\\”+ choosenFile); foreach (string line in lines) { errorCounter = 0; string[] items = line.Split(‘\t’).ToArray(); for (int i = 0; i <custIndex.Count; i++) { int index = custIndex[i]; /*Get the state and country codes from […]

DataGridView – AllowUserToAddRows做了什么?

我期望这个设置会影响控件本身,但我似乎无法通过将AllowUserToAddRows设置为true的DataGridView添加新行。 我只是垃圾使用我的鼠标和键盘,还是我完全误解了这个属性? 我怀疑它是后者,虽然我在文档的方式上找不到太多指向正确的方向。 编辑:顺便说一句,这不是我的垃圾,它似乎与使用List作为DataGridView的DataSource有关; 如果我绑定到List,那么小’*’就不会出现。

DatagridView:删除未使用的空间?

我想知道是否可以在C#中删除DataGridView控件的未使用空间(灰色空间)。 我必须使DataGridView只显示白表。 alt text http://sofzh.miximages.com/c%23/datagridview-to-excel-1.gif 有什么建议 ?

从DataGridView解除绑定BindingSource的正确方法

我有一个BindingList 对象,设置为BindingSource的DataSource。 这被设置为DataGridView的DataSource。 我担心不会导致任何潜在的内存泄漏,所以想知道在我完成数据时是否有一种首选方法可以取消绑定这些连接。 我在考虑: datagridview.DataSource = null; bindingsource.DataSource = null; bindingsource.Clear(); 要重新绑定: bindingsource.DataSource = bindinglist; datagridview.DataSource = bindingsource; 这个订单是正确的,还是真的重要? 我是否遗漏了应该存在的任何内容? 任何指针都表示赞赏,谢谢。

以编程方式使新行变脏并在DataGridView中插入新行

我有一个可编辑的无界数据网格视图。 我正在以编程方式更改新行的值。 通常,当用户键入新行的任何字段时,它会变脏并在其下方插入另一个新行。 但在我的情况下,当用户进入新行的任何字段时,我正在捕获function键并以编程方式更改单元格值。 myGrid.CurrentCell.Value =“xyz”; 并且它不会在它下面插入新行。 现在作为一个解决方法我在CellValueChanged事件处理程序上尝试了这个。 if (myGrid.NewRowIndex == e.RowIndex) { myGrid.Rows.Insert(e.RowIndex + 1, 1); } 但它会抛出错误,说明No row can be inserted after the uncommitted new row. 。 我怎么能告诉myGrid我的当前行(这是一个新行)是脏的,之后需要一个新行?

如何在DataGridViewCell中处理KeyEvents?

是否存在DataGridViewCell的Keydown事件? 我想要做的是当用户在特定单元格中键入内容时,他可以按F1获取该特定列的帮助。 一些表格将弹出… 它是什么事件?

错误:“DataGridViewComboBoxCell值无效。”DataSource是基本类型的列表

我无法找到与我的问题完全匹配的问题。 与此问题和此问题类似,我将DataGridViewComboBoxColumn上的DataSource设置为一系列事物。 在我的情况下,事情是简单的类型,如双打和整数,所以谈论ValueMembers和DisplayMembers的答案并没有给我带来很多好处。 当用户选择一个值时,我得到了可怕的“DataGridViewComboBoxCell值无效”错误。 我可以用一个空的dataGridView_DataError处理程序来吞下错误,但这显然是一个糟糕的方法。