• C# winform控件之listview学习积累


    //1.用key给ListViewItem 的 SubItems赋值
    ListViewItem listViewItem= listView1.Items.Add("第一列文字");
    listViewItem.SubItems.Add(new ListViewItem.ListViewSubItem() { Name = "这里就是key", Text = "这里是显示的文字" }); 
    
    //2.用key取ListViewItem 的 SubItems
    string text= listView1.SelectedItems[0].SubItems["这里就是key"].Text
    
    //3.给ListView添加数据并且设置选中项后,this.listView1.SelectedItems.Count一直为0;在网上找了半天,半猜出来了
    //首先,给ListView添加数据写在了ListView的构造函数里面
    public listviewtest(List<List> exerciseTable, int selectIndex)
    {
        InitializeComponent();
        for (int i = 0; i < exerciseTable.Count; i++)
        {
            List exerciseRow = exerciseTable[i];
            listView1.Items.Add(exerciseRow[0]);
            listView1.Items[i].SubItems.Add(exerciseRow[1]);
            listView1.Items[i].SubItems.Add(exerciseRow[2]);
            listView1.Items[i].SubItems.Add(exerciseRow[3]);
            listView1.Items[i].SubItems.Add(exerciseRow[4]);
        }            
    }
    //这个时候紧跟着在后面设置选中项并测试是否有选中项
    if (listView1.Items.Count > 0)
    {
        //listView1.Focus();
        listView1.HideSelection = false;
        listView1.Items[0].Selected = true;
        //listView1.Select();
    }
    int count = this.listView1.SelectedItems.Count;
    /*这个时候this.listView1.SelectedItems.Count一直为零???一直搞不懂为啥
    在网上找了相关资料:构造函数是用来创建和实例化对象的,窗体加载事件是在构造函数执行完之后执行的
    个人猜测是因为构造函数设置ListView的选中项的时候,ListView还没有完全被勾画出来,
    也就是说还在内存中(或者其他地方,这一块一直不懂),然后this.listView1.SelectedItems.Count就一直为零了
    把获取选中项信息的代码放到Load事件中,经测试结果正确*/
    private void listviewtest_Load(object sender, EventArgs e)
    {
        int count = this.listView1.SelectedItems.Count;//count = 1
    }
    

      

  • 相关阅读:
    【基于mini2440开发板的交叉编译环境及内核树配置.
    linux 模块编译步骤(原)
    鸟哥的linux私房菜
    ios消息机制
    初学者必学文档:Objective-C语法入门(1)
    oc基础知识
    ios 人魔七七
    Usaco Open09 Gold
    USACO JAN 2012 Bronze
    USACO·2012·Feb Bronze
  • 原文地址:https://www.cnblogs.com/zhyue93/p/WinForm_ListView.html
Copyright © 2020-2023  润新知