C# listview添加combobox到单元格的实现代码
实现代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;
namespaceWindowsFormsApplication1
{
publicpartialclassForm1:Form
{
ListViewItemlvi;
publicForm1()
{
InitializeComponent();
}
privatevoidForm1_Load(objectsender,EventArgse)
{
comboBox1.Visible=false;
listView1.Columns.Add("第一列");
listView1.Columns.Add("第二列");
listView1.Columns.Add("第三列");
this.comboBox1.Items.Add("科比");
this.comboBox1.Items.Add("姚明");
this.comboBox1.Items.Add("杜兰特");
this.comboBox1.Items.Add("邓肯");
ListViewItemitem;
item=newListViewItem(1.ToString());
item.SubItems.Add("姚明");
item.SubItems.Add("科比");
listView1.Items.Add(item);
item=newListViewItem(2.ToString());
item.SubItems.Add("邓肯");
item.SubItems.Add("杜兰特");
listView1.Items.Add(item);
}
privatevoidlistView1_MouseUp(objectsender,MouseEventArgse)
{
lvi=this.listView1.GetItemAt(e.X,e.Y);
if(lvi!=null)
{
//获取选中行的Bounds
RectangleRect=lvi.Bounds;
intLX=listView1.Columns[0].Width;
intRX=listView1.Columns[0].Width+listView1.Columns[1].Width;
//if(e.X>RX||e.X<LX)
//{
this.comboBox1.Visible=false;
Rect.X=listView1.Left+listView1.Columns[0].Width+2;
Rect.Y=this.listView1.Top+2+Rect.Y;
Rect.Width=listView1.Columns[1].Width+2;
this.comboBox1.Bounds=Rect;
this.comboBox1.Text=lvi.SubItems[1].Text;
this.comboBox1.Visible=true;
this.comboBox1.BringToFront();
this.comboBox1.Focus();
//}
//intintColIndex=lvi.SubItems.IndexOf(lvi.GetSubItemAt(e.X,e.Y));
}
}
privatevoidcomboBox1_SelectedIndexChanged(objectsender,EventArgse)
{
lvi.SubItems[1].Text=comboBox1.Text;
//comboBox1.Visible=false;
}
privatevoidcomboBox1_MouseLeave(objectsender,EventArgse)
{
lvi.SubItems[1].Text=comboBox1.Text;
//comboBox1.Visible=false;
}
}
}热门推荐
2 天仙配简短祝福语
10 新婚贺词祝福语创意简短
11 毕业教师花语祝福语简短
12 猪年祝福语大全简短的
13 卖奶茶开张祝福语简短
14 升学了祝福语简短句
15 夜雨祝福语简短10字
16 学校生日祝福语简短独特
17 牛年公司新年祝福语简短
18 孩子新年祝福语简短精辟