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中的列过程中的事件呢?

解决方案 »

  1.   

    你的区分 ColumnWidthChanged ColumnWidthChanging 两个事件
    ColumnWidthChanged 是你要的事件 
      

  2.   

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

  3.   


    ColumnWidthChanged是拖动结束后响应的事件,而且向楼上说的,初始化的时候就会触发。我想要的是拖动时就响应的,就是拖动列的时候响应。像我说的类似下拉框位置随着列的宽度移动,是动态的。而不是拖动结束后下拉框的位置才移动。
      

  4.   

    这个~~~ 那要写Mouse事件了~~或则继承下Column进行消息判断....