Datagridview列SortGlyph指标隐藏在滚动条后面

时间:2015-03-04 14:31:24

标签: c# winforms datagridview

我有一个winform应用程序,其Datagridview有6列。除col之外的所有列。 4是可排序的。通过单击列标题启动排序,网格将对该列进行排序。这一切都有效。我的问题是,当我在网格中有超过17行数据时,会出现一个垂直滚动条(这就是我想要的)。但是,如果我碰巧在网格中的最后一列上进行排序,则垂直滚动条会隐藏SortGlyph三角形。用户将无法看到排序方向。如果我对其他列进行排序,这不是问题。当垂直滚动条出现时,我希望列正确调整(宽度方向),这样我就可以随时看到SortGlyph指示器。 注意:我只为网格显示垂直滚动(不是horz滚动条)。我的表单不大,使用FormBorderStyle.Fixed3D。网格设置为DockStyle.Fill。

一些相关代码:

this.GridView_DocumentStatus.AllowUserToAddRows = false;
this.GridView_DocumentStatus.AllowUserToDeleteRows = false;
this.GridView_DocumentStatus.AllowUserToResizeRows = false;
dataGridViewCellStyle1.Alignment =DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle1.WrapMode = DataGridViewTriState.True;
this.GridView_DocumentStatus.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;

this.GridView_DocumentStatus.Dock = System.Windows.Forms.DockStyle.Fill;
this.GridView_DocumentStatus.EnableHeadersVisualStyles = false;
this.GridView_DocumentStatus.Location = new System.Drawing.Point(0, 0);
this.GridView_DocumentStatus.MultiSelect = false;
this.GridView_DocumentStatus.ReadOnly = true;
this.GridView_DocumentStatus.RowHeadersVisible = false;
this.GridView_DocumentStatus.ScrollBars = ScrollBars.Vertical;
this.GridView_DocumentStatus.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

我必须设置一些错误导致此效果。 - 或者 - 这是我必须通过自己手动调整列来进行微观管理(这会很糟糕)。

1 个答案:

答案 0 :(得分:1)

更改上一列填充的布局设置,当垂直滚动条出现时,将重新调整列宽:

Column6.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
Column6.FillWeight = 100;