zoukankan      html  css  js  c++  java
  • ListView失去焦点选中行不能高亮显示的问题解决

    方法一:

    1.ListView的HideSelection属性设置为True。

    2.ListView的Validated事件处理

            /// <summary>
            /// 失去焦点事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void lvSeries_Validated(object sender, EventArgs e)
            {
                try
                {
                    if (lvSeries.FocusedItem != null)
                    {
                        lvSeries.FocusedItem.BackColor = SystemColors.Highlight;
                        lvSeries.FocusedItem.ForeColor = Color.White;
                        lvSeries.SelectedIndices.Add(lvSeries.FocusedItem.Index);
                    }
                }
                catch (Exception eEx)
                {
                    MessageBox.Show(eEx.Message);
                }
            }

    3.ListView的ItemSelectionChanged事件处理

            /// <summary>
            /// 选择变化事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void lvSeries_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
            {
                try
                {
                    e.Item.ForeColor = Color.Black;
                    e.Item.BackColor = SystemColors.Window;

                    if (lvSeries.FocusedItem != null)
                    {
                        lvSeries.FocusedItem.Selected = true;
                    }
                }
                catch (Exception eEx)
                {
                    MessageBox.Show(eEx.Message);
                }
            }

    方法二:只能单选行功能,并排除方法一中的不易发现的Bug

              this.listview1.Validated += new System.EventHandler(this.lvSeries_Validated);
              this.listview1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.lvSeries_MouseDown);

            /// <summary>
            /// 失去焦点事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void lvSeries_Validated(object sender, EventArgs e)
            {
                try
                {
                    if (lvSeries.FocusedItem != null)
                  {
                    lvSeries.FocusedItem.BackColor = SystemColors.Highlight;
                    lvSeries.FocusedItem.ForeColor = Color.White;
                     }         

                 }
                catch (Exception eEx)
                {
                    MessageBox.Show(eEx.Message);
                }
            }

            /// <summary>
            /// 重新选择行事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void lvSeries_MouseDown(object sender, MouseEventArgs e)
            {
                try
                {

                   ListViewItem _curItem = this.lvSeries.GetItemAt(e.X, e.Y);
                     foreach (ListViewItem item in lvSeries.Items)
                 {
                    item.ForeColor = Color.Black;
                    item.BackColor = Color.White;
                }
                if (_curItem != null && _curItem.Index > -1)
                {
                    _curItem.BackColor = SystemColors.Highlight;
                    _curItem.ForeColor = Color.White;
                  }
                else
                {
                    if (lvSeries.FocusedItem != null)
                    {
                        lvSeries.FocusedItem.BackColor = SystemColors.Highlight;
                        lvSeries.FocusedItem.ForeColor = Color.White;
                     }
                  }           

               }
                catch (Exception eEx)
                {
                    MessageBox.Show(eEx.Message);
                }
            }

  • 相关阅读:
    BZOJ1877: [SDOI2009]晨跑
    SPFA的两个优化:SLF与LLL
    BZOJ1858: [Scoi2010]序列操作
    java线程基础巩固---如何捕获线程运行期间的异常
    java线程基础巩固---如何给你的应用程序注入钩子程序
    类的命名空间与卸载详解及jvisualvm使用
    okhttp拦截器之RetryAndFollowUpInterceptor&BridgeInterceptor分析
    okhttp初识拦截器
    类加载器双亲委托机制实例深度剖析
    类加载器重要方法详解
  • 原文地址:https://www.cnblogs.com/fanyf/p/2278957.html
Copyright © 2011-2022 走看看