Questions tagged «datagridview»

DataGridView是Windows窗体控件,用于显示和编辑表格数据。

9
在两个屏幕之一上,DataGridView的可怕的重绘性能
我实际上已经解决了这个问题,但我将其发布以供后代参考。 我的双显示器系统上的DataGridView遇到了一个非常奇怪的问题。该问题表现为控件的极慢重绘(例如,完整重绘需要30秒),但仅当它在我的一个屏幕上时才显示。另一方面,重绘速度很好。 我有Nvidia 8800 GT,带有最新的非beta驱动程序(175。)。是驱动程序错误吗?我将把它悬而未决,因为我必须忍受这种特殊的配置。(不过,这在ATI卡上不会发生...) 绘制速度与单元格内容无关,并且自定义绘制根本无法提高性能-即使仅绘制实心矩形也是如此。 后来我发现,将ElementHost(来自System.Windows.Forms.Integration命名空间)放在窗体上可以解决此问题。它不一定要弄乱;它只是需要DataGridView形式的子对象。只要Visible属性为true ,就可以将其调整为(0,0)。 我不想将.NET 3 / 3.5依赖项显式添加到我的应用程序中。我创建了一种在运行时使用反射创建此控件的方法。它可以正常工作,并且至少在没有所需库的计算机上正常运行-只是恢复缓慢。 此方法还使我可以在应用程序运行时申请修复,从而可以更轻松地查看表单上WPF库的更改(使用Spy ++)。 经过大量的试验和错误之后,我注意到在控件本身(而不是仅表单)上启用双重缓冲可以解决此问题! 因此,您只需要基于DataGridView创建自定义类,即可启用其DoubleBuffering。而已! class CustomDataGridView: DataGridView { public CustomDataGridView() { DoubleBuffered = true; } } 只要我所有的网格实例都使用此自定义版本,一切都很好。如果遇到这种情况导致我无法使用子类解决方案(如果我没有代码),我想我可以尝试将该控件注入表格中:)(尽管我更有可能尝试使用反射从外部强制启用DoubleBuffered属性,以再次避免该依赖关系。 可惜如此琐碎的事情占用了我很多时间...

9
如何使DataGridView显示所选行?
我需要强制DataGridView显示所选内容row。 简而言之,我有一个textbox可DGV根据键入的内容更改选择textbox。发生这种情况时,选择将更改为match row。 不幸的是,如果所选row内容不在视图中,我必须手动向下滚动才能找到所选内容。有谁知道如何强制DGV显示所选内容row? 谢谢!

15
用户单击列标题时如何启用DataGridView排序?
我在表单上有一个datagridview,并用以下命令填充它: dataGridView1.DataSource = students.Select(s => new { ID = s.StudentId, RUDE = s.RUDE, Nombre = s.Name, Apellidos = s.LastNameFather + " " + s.LastNameMother, Nacido = s.DateOfBirth }) .OrderBy(s => s.Apellidos) .ToList(); 现在,我使用s.Apellidos作为默认排序,但是我也想允许用户在单击列标题时进行排序。 这种排序不会以任何方式修改数据,这只是客户端的好处,可以使他们在用眼睛扫描屏幕时更轻松地搜索信息。 感谢您的建议。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.