C#Listview LabelEdit

时间:2017-11-22 12:57:15

标签: c# winforms listview edit

我想在winform的应用程序中编辑listview的列,我可以通过设置LabelEdit = true并在KeyDown事件中编写以下代码

来完成此操作
if (e.KeyData == Keys.F2 && lvwColumns.SelectedItems.Count > 0)
                lvwColumns.SelectedItems[0].BeginEdit();

编辑标签后,如何验证输入的值?如果值为null或为空,我想阻止它保存。

Before Edit

enter image description here

2 个答案:

答案 0 :(得分:3)

听起来你正在寻找ListView.AfterLabelEdit事件。

private void lvwColumns_AfterLabelEdit(object sender, System.Windows.Forms.LabelEditEventArgs e)
{
   if (string.IsNullOrWhitespace(e.Label))
   {
         e.CancelEdit = true;
         MessageBox.Show ("Please enter a valid value.");
         return;
   }
}

答案 1 :(得分:2)

使用此AfterLabelEdit MSDN

表格上的样本:

    public Form1()
    {
        InitializeComponent();

        lvwColumns.LabelEdit = true;

        lvwColumns.AfterLabelEdit += lvwColumns_AfterLabelEdit;
    }

    private void lvwColumns_AfterLabelEdit(object sender, LabelEditEventArgs e)
    {
        if (String.IsNullOrWhiteSpace(e.Label))
            e.CancelEdit = true;
    }