ListView에 대한 내용을 찾다가..
ListView 자체에서 수정가능한 컨트롤을 찾았다.
ListView에서 수정할 수 있는 컨트롤 textBox와 ComboBox를 추가하였다.
private Control[] Editors;
public void Form_Load(object sender, Eventargs e)
{
Editors = new Control[] { null, textBox2, textBox2, comboBox4, comboBox4, comboBox4, comboBox4, comboBox4, comboBox4, comboBox4, comboBox4};
}
컨틀롤 변수를 선언하여.. 리스트뷰의 컬럼헤더를 어떤한 컨트롤로 변경할 건지에 대해서 지정해주며,
ListViewEx의 이벤트 중에서 SubItemClicked과 MouseMove 이벤트를 아래와 같이 작성해주면 정상적으로 ListView 안에서 SubItem을 수정할 수 있다.
private void ListViewEdit_SubItemClicked(object sender, ListViewEx.SubItemEventArgs e)
{
try
{
if (e.SubItem == 11)
{
e.Item.SubItems[e.SubItem].Text = e.Item.Tag.ToString();
}
listViewEx1.StartEditing(Editors[e.SubItem], e.Item, e.SubItem);
}
catch(System.Exception)
{
return;
}
}
private void ListViewEdit_MouseMove(object sender, MouseEventArgs e)
{
try
{
ListViewItem item;
int index = listViewEx1.GetSubItemAt(e.X, e.Y, out item);
if (item != null && index == 11)
toolTip1.SetToolTip(listViewEx1, item.Tag.ToString());
else
toolTip1.SetToolTip(listViewEx1, null);
}
catch(System.Exception)
{
return;
}
}
출처 :
http://www.codeproject.com/
프로젝트 소스를 받아서 지금 진행하고 있는 프로젝트에 적용 후 블로그에 게시 하였습니다. 저작권에 문제되시면 메일 주세요