我在基于 C# 的 win-form 项目中有一个 ListView。是否可以限制 ListView 内所有 ListViewItem 标题的最大长度?
更新
我的意思是输入长度,我将项目设置为可编辑,以便用户可以重命名项目
更新2
对,它被称为该项目的“文本”,而不是标题。
我在基于 C# 的 win-form 项目中有一个 ListView。是否可以限制 ListView 内所有 ListViewItem 标题的最大长度?
更新
我的意思是输入长度,我将项目设置为可编辑,以便用户可以重命名项目
更新2
对,它被称为该项目的“文本”,而不是标题。
您可以在列表视图的编辑事件后使用标签。这是一个示例。
private void listview1_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
try
{
const int maxPermittedLength = 1;
if (e.Label.Length > maxPermittedLength)
{
//trim text
listview1.Items[e.Item].SubItems[0].Text = listview1.Items[e.Item].SubItems[0].Text.Substring(0, maxPermittedLength); //or something similar
//or
//show a warning message
//or
e.CancelEdit = true; //cancel the edit
}
}
catch (Exception ex)
{
}
}
请记住,它很棘手,并不简单,您将不得不处理一些异常,但那是功课.. 上面的代码不是有效的代码,但您现在知道如何去做了。仔细阅读文档,它有一个很好的示例和与此事件相关的警告。
ListViewItem 的标题是什么意思?你的意思是项目文本吗?我相信任何可回收的东西都是可修复和可控的。如果是item text,可以写个check方法
public string SimplifyTxt(string input)
{
if(input.Length>LIMIT_NUMBER)
{
//please shorten the string before display
}
return retStr;
}
然后可以将其分配为
listview1.items.add(new Listviewitem{Text=retVal});