一、Winform ListView 显示复杂控件示例
- 以下展示了两种实现思路方案。
- 最后修改日期 2024-05 surfsky
1.1 方案一:ListView 结合组合框进行模拟编辑
基本思路
- 在界面上放置一个lisview和一个combobox,combobox平时是隐藏的。
- 点击listview,在点击位置的单元格上显示这个combobox
- combobbox数据变更后,更新到listview
核心代码如:
public partial class Form1 : Form
{
ListViewSubItem _cell; // 被选中的单元格
public Form1()
{
InitializeComponent();
InitData();
}
void InitData()
{
// combobox
comboBox1.Visible = false;
this.comboBox1.Items.Add("科比");
this.comboBox1.Items.Add("姚明");
this.comboBox1.Items.Add("杜兰特");
this.comboBox1.Items.Add("邓肯");
// listview
listView1.Columns.Add("第一列");
listView1.Columns.Add("第二列");
listView1.Columns.Add("第三列");
var item = new ListViewItem(1.ToString());
item.SubItems.Add("姚明");
item.SubItems.Add("科比");
listView1.Items.Add(item);
item = new ListViewItem(2.ToString());
item.SubItems.Add("邓肯");
item.SubItems.Add("杜兰特");
listView1.Items.Add(item);
}
// ListView 点击后在点击单位格位置处显示控件
private void lv_MouseUp(object sender, MouseEventArgs e)
{
// 将控件定位到点击单元格中
var lvi = this.listView1