zoukankan      html  css  js  c++  java
  • 跨线程为控件赋值并保持listview选中状态以及在可见区域显示

    本例主要功能为跨线程为控件赋值,并且实现listview控件保持选中状态以及在可见区域显示

            /// <summary>
            /// 为控件赋值的委托
            /// </summary>
            /// <param name="realTimeRecord"></param>
            delegate void SetListViewCallback2(List<CheckedItRecord> checkedItRecordList);

           int itemIndex = -1;//初始化listview选中项的索引

    #region 跨线程绑定发布列表
    /// <summary>
    /// 跨线程绑定发布列表
    /// </summary>
    /// <param name="realTimeRecord"></param>
    private void SetListViewPublish(List<CheckedItRecord> checkedItRecordList)
    {
    // InvokeRequired需要比较调用线程ID和创建线程ID
    // 如果它们不相同则返回true
    if (this.listViewPublish.InvokeRequired)
    {
    SetListViewCallback2 d
    = new SetListViewCallback2(SetListViewPublish);
    this.Invoke(d, new object[] { checkedItRecordList });
    }
    else
    {
    listViewPublish.Items.Clear();
    foreach (CheckedItRecord checkedItRecord in checkedItRecordList)
    {
    ListViewItem lvitem
    = new ListViewItem();
    lvitem.Tag
    = checkedItRecord.DeviceID.ToString();
    lvitem.SubItems[
    0].Text = (Convert.ToString(checkedItRecord.BeginTime));
    lvitem.SubItems.Add(Convert.ToString(checkedItRecord.EndTime));
    lvitem.SubItems.Add(checkedItRecord.Editor);
    List
    <CommonInfo> stateInfoListTemp = stateInfoList.FindAll(delegate(CommonInfo obj) { return obj.Code == Convert.ToString((int)checkedItRecord.SendState); });
    lvitem.SubItems.Add(stateInfoListTemp[
    0].Type);
    lvitem.SubItems.Add(checkedItRecord.EditTime);
    lvitem.SubItems.Add(Convert.ToString(checkedItRecord.SendTime));
    lvitem.SubItems.Add(checkedItRecord.SendInfoID.ToString());
    lvitem.SubItems.Add(checkedItRecord.InfoID.ToString());
    listViewPublish.Items.Add(lvitem);
    }
    if (this.itemIndex != -1)
    {
    //保证listview选中状态及可见性
    this.listViewPublish.Items[this.itemIndex].Selected = true;
    this.listViewPublish.Items[this.itemIndex].EnsureVisible();
    }
    }
    }
    #endregion
  • 相关阅读:
    Web Services开发(Java篇)
    前端UI框架小汇总
    WebService 在C#.NET中的使用
    求n*m网格内矩形的数目
    Silverlight学习笔记(三):控件布局管理
    Silverlight学习笔记(二):创建Hello World 项目(备注)
    ExcelHelp 学习笔记二: C# 往Excel中写入数据
    DataBase 学习笔记一:c#连接SQL数据库
    ExcelHelp 学习笔记一: C#读取Excel中数据
    Silverlight学习笔记(二):创建Hello World 简单基础应用
  • 原文地址:https://www.cnblogs.com/smartsensor/p/2031835.html
Copyright © 2011-2022 走看看