Windows窗体列表视图最小列宽

时间:2013-01-09 00:50:37

标签: c# winforms listview

我让应用程序看起来像是在50处停止宽度,但是如果再拖动鼠标然后放松,则宽度将低于:

private void ListView1_ColumnWidthChanging(object sender, ColumnWidthChangingEventArgs e)
{
    if (e.ColumnIndex ==0 & e.NewWidth <50)
    {
        e.Cancel = true;
    }
}

如果ColumnWidthChanged,我无法确定如何将changed width = < 50宽度强制为50。我不需要修改列宽,因为信息的长度会有所不同,但会强制使用最小宽度。

有什么建议吗?

2 个答案:

答案 0 :(得分:5)

如果您想在之后更改宽度,则用户完成拖动列分隔符后可以执行此操作

private const int _minimumColumnWidth = 50;

private void ListView1_ColumnWidthChanged(object sender, ColumnWidthChangedEventArgs e)
{
     if (ListView1.Columns[e.ColumnIndex].Width < _minimumColumnWidth)
     {
          ListView1.Columns[e.ColumnIndex].Width = _minimumColumnWidth;
     }
}

答案 1 :(得分:0)

Better ListViewBetter ListView Express(免费)组件在列标题上有一些有用的属性:

betterListView.Columns[0].MinimumWidth = 50;

还有 MaximumWidth AllowResize