C# listview 的问题
最近无聊写个小东西,重写了一个listview控件,让他支持sub-item的编辑操作,是用一个editbox实现的,但是碰到一个问题,但才疏学浅,始终无解。主要代码如下:protected override void OnDoubleClick(EventArgs e)
{
Point pt = this.PointToClient(Cursor.Position);
ListViewItem curItem;
int subItemIndex = GetSubItemAt(pt.X, pt.Y, out curItem);
DoubleClickEventArgs args = new DoubleClickEventArgs(subItemIndex);
base.OnDoubleClick(args);
if (subItemIndex>=0 && !args.Cancel)
{
//StartEdit(...);
}
}
public void EndEdit(bool acceptChanges)
{
//validation
.................
.................
AfterSubItemEventArgs e = new AfterSubItemEventArgs(this.SelectedItems[0], m_editSubItemIndex, this.SelectedItems[0].SubItems[m_editSubItemIndex].Text, m_textbox.Text, false);
OnAfterSubItemEdit(e);
if (e.Cancel)
{
//this.SelectedItems[0].SubItems[m_editSubItemIndex].Text = this.SelectedItems[0].SubItems[m_editSubItemIndex].Text;
this.BringToFront();
}
else
{
//set new value
}
m_textbox.Visible = false;
m_editSubItemIndex = -1;
}
现在有种情况,我在OnAfterSubItemEdit中会判断修改的新的值是否已存在,如果存在我会弹出一个messagebox提示用户已存在,用户点了下OK,然后将焦点重新设置给listview,但是这时有个奇怪的现象,移动鼠标可以选择行了,如下:
不知道为何,望各位大侠指教~~ --------------------编程问答-------------------- 路过 --------------------编程问答-------------------- 用datagridview不是更好么? --------------------编程问答-------------------- 非要用这个,自己google codeproject editable listview --------------------编程问答-------------------- 可以用其他现成的东西,但是我碰到的这个问题怎么解决哈?
补充:.NET技术 , C#