当前位置:编程学习 > C#/ASP.NET >>

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#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,