人性的弱点:思维惯性

使用环境:win2003+vs2003+.net framework sp1
msdn中说,ListView 存在SelectedIndexCollection class,
可以使用

ListView.SelectedIndexCollection indexes = 
        
this.ListView1.SelectedIndices;


来调用的,但是在Vs2003中,输入ListView.后,没有SelectedIndexCollection提示;
如果System.Windows.Forms.ListView.SelectedIndexCollection a = listView1.SelectedIndices;是可以通过编译的,只是Vs2003不提示有SelectedIndexCollection这个类的。
使用Reflector查看ListView,存在SelectedIndexCollection Class,定义如下:

public class SelectedIndexCollection : IList, ICollection, IEnumerable
{
      
// Methods
      public SelectedIndexCollection(ListView owner);
      
public bool Contains(int selectedIndex);
      
public void CopyTo(Array dest, int index);
      
public IEnumerator GetEnumerator();
      
public int IndexOf(int selectedIndex);
      
bool ICollection.get_IsSynchronized();
      
object ICollection.get_SyncRoot();
      
int IList.Add(object value);
      
void IList.Clear();
      
bool IList.Contains(object selectedIndex);
      
bool IList.get_IsFixedSize();
      
object IList.get_Item(int index);
      
int IList.IndexOf(object selectedIndex);
      
void IList.Insert(int index, object value);
      
void IList.Remove(object value);
      
void IList.RemoveAt(int index);
      
void IList.set_Item(int index, object value);

      
// Properties
      [Browsable(false)]
      
public int Count get; }
      
private int[] IndicesArray get; }
      
public bool IsReadOnly get; }
      
public int this[int index] get; }

      
// Fields
      private ListView owner;
}


 
说明:关于类中子类的调用,是使用类名称调用的,同调用类中静态方法相似。所以使用

System.Windows.Forms.ListView.SelectedIndexCollection a = listView1.SelectedIndices


只是Vs2003中文版中存在Bug,不提示SelectedIndexCollection存在,对于像我这样用Vs2003,喜欢其提示的人来说,谨防思维惯性,过于相信Microsoft。
凡事要动手验证,只靠思考存在误区,须知“纸上得来终觉浅,绝知此事要躬行”。
看来,使用基于文本的编辑器,手工编译源码还是有好处的。

posted on 2005-06-07 17:14  Pierce  阅读(1647)  评论(4编辑  收藏  举报

导航