读书人

关于ListView控件的ColumnWidthChangi

发布时间: 2012-01-14 20:02:35 作者: rapoo

关于ListView控件的ColumnWidthChanging事件
private void listView1_ColumnWidthChanging(object sender, ColumnWidthChangingEventArgs e)
{
switch (treeListView1.Columns[e.ColumnIndex].Name)
{
case "name":
e.Cancel = true;
e.NewWidth = treeListView1.Columns[e.ColumnIndex].Width; //设置固定不变值
}
}

假设listView1中有一列Name叫"name"的ColumnHeader(标题列)。

以前在ColumnWidthChanging事件(拖动时发生)中实现一些类似上面的功能时,都是拖到列的时候即响应。可是最近使用相同的代码,在拖动时却无法响应。
反而是双击列的分隔符时才响应。

比如有一个下拉框在某列的上端,左边距都一样,即:位置是对齐的。那么如果拖动列,下拉框控件的位置会随着拖动列的位置移动。以前就是在ColumnWidthChanging事件中实现的。

如何响应拖动ListView中的列过程中的事件呢?

[解决办法]
实验了一下果然没效果。。
[解决办法]
你的区分 ColumnWidthChanged ColumnWidthChanging 两个事件
ColumnWidthChanged 是你要的事件


[解决办法]
ColumnWidthChanged可以用这一个。但得先判断一下它是否是你的初始宽度。
因为它在初始化时就会触发这个事件

读书人网 >C#

热点推荐