MFC 如何列表一选就选中整行(CListCtrl)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC 如何列表一选就选中整行(CListCtrl)相关的知识,希望对你有一定的参考价值。

MFC 如何列表一选就选中整行(CListCtrl)
呃,你是叫我重写这个函数还是直接在哪个源文件的哪个地方加上这句啊?

int CListCtrl::GetSelectionMark();
返回值:返回选中索引号,否则返回-1
说明:这个函数可以处理单行的情况,但是有一个缺点,它会保留你上次选中的项,所以当你单击空白的地方时,还会返回上次选中的项。因此在使用快捷键实现删除操作时需要注意这个情况,一般可以配合UINT GetItemState(int nItem,
UINT nMask) const;来判断。
单行:int nItem = m_listCtrl.GetSelectionMark();
m_listCtrl.DeleteItem(nItem);
参考技术A 设置扩展风格
CListCtrl::SetExtendedStyle(LVS_EX_FULLROWSELECT );
这样就全选了
还有
其它风格,比如绘制网格线LVS_EX_GRIDLINES 等等,具体参考MSDN把本回答被提问者采纳

C#WinForm datagridview控件一选选一整行的效果实现时,取消第一行默认被选取的副效果

1 UI

技术分享

 

 

2 code

 

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Threading.Tasks;
 9 using System.Windows.Forms;
10 using System.Xml.Linq;
11 
12 namespace WindowsFormsApplication3
13 {
14     public partial class Form1 : Form
15     {
16         public Form1()
17         {
18             InitializeComponent();
19         }
20 
21         List<User> datas = new List<User>();
22 
23         private void Form1_Load(object sender, EventArgs e)
24         {
25             LoadXmlFile();
26 
27 
28             ///////////////////////////////////////////////////
29             //取消第一行默认被选中的负效果
30             dataGridView1.SelectedRows[0].Selected = false;
31             ///////////////////////////////////////////////////
32 
33         }
34 
35         private void LoadXmlFile()
36         {
37             //form 窗体在加载的时候,读取xml文件
38             XDocument xmlFile = XDocument.Load("1.xml");
39             XElement root = xmlFile.Root;
40 
41             foreach (var item in root.Elements())
42             {
43                 datas.Add(new User() { ShengHao = item.Element("ShengHao").Value, Password = item.Element("Password").Value });
44             }
45 
46             //将list数据与datagridview绑定
47             dataGridView1.DataSource = datas;
48 
49         }
50     }
51 }

 

 

3 show

技术分享

 

以上是关于MFC 如何列表一选就选中整行(CListCtrl)的主要内容,如果未能解决你的问题,请参考以下文章

MFC编程 -- 列表删除单行及多行操作

CListCtrl (MFC) 选择点击通过控制UNDERNEATH列表

MFC总结之CListCtrl用法及技巧

如何在 MFC 的 CListCtrl 中插入位图或其他图像对象?

MFC-CListCtrl-SetCheck设置复选框的状态

MFC列表控件 CListCtr