public Form1()
        {
            InitializeComponent();
        }        private void Form1_Load(object sender, EventArgs e)
        {
            listView1.TabIndex = 0;
            listView1.Items.Add("1111111111");
            listView1.Items.Add("2222222222");
            listView1.Items.Add("3333333333");
            listView1.Items[0].Selected = true;
        }        private void button1_Click(object sender, EventArgs e)
        {            listView1.TabIndex = 0;
            listView1.Items.Add("4444444444");
            listView1.Items[1].Selected = true;
        }
    }
问题:就是在Form1_Load()函数中可以执行选中第一行的,但是我手动用按键1点击,本来的意思是要此时选中第二行的,但是事实上却没选中。 其中listView控件的view属性为list。

解决方案 »

  1.   

    你是不是每次只能选中一行中的一项?
    在属性里面有个属性,应该是fullrowselect改成true
    或者listview1.Fullrowselect=true;
      

  2.   

    已测试通过
      private void button1_Click(object sender, EventArgs e)
            {
                listView1.TabIndex = 0;
                listView1.Items.Add("4444444444");
                listView1.Focus();
                listView1.Items[0].Selected = false;           
                listView1.Items[1].Selected = true;        }
      

  3.   

    现在问题是解决了,但是我在线程里对listView操作,又出现了上述问题,新定义了一个按键2,当点击按键2时,新开辟一个线程,在这个线程函数里对listView进行操作,但是效果没出来
    public Form1()
            {
                InitializeComponent();
                System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false; //不去判断线程之间的无效
            }        private void Form1_Load(object sender, EventArgs e)
            {
                //listView1.TabIndex = 0;
                listView1.Items.Add("1111111111");
                listView1.Items.Add("2222222222");
                listView1.Items.Add("3333333333");
                listView1.Items[2].Selected = true;
            }        private void button1_Click(object sender, EventArgs e)
            {            listView1.Focus();
                listView1.Items.Add("4444444444");
                listView1.Items[1].Selected = true;
            }        private void button2_Click(object sender, EventArgs e)
            {
                Thread view = new Thread(new ThreadStart(rview));
                view.Start();
            }
            public void rview()
            {
                listView1.Focus();
                listView1.Items.Add("55555555");
                listView1.Items[3].Selected = true;
            }    }