我在基于C#的win-form项目中有一个ListView。是否可以限制ListView中所有ListViewItem的标题的最大长度?
更新
我的意思是输入长度,我将项目设置为可编辑,因此用户可以重命名项目
UPDATE2
是的,它被称为该项目的“文本”,而不是标题。
答案 0 :(得分:3)
您可以使用列表视图的label after edit event。这是一个样本。
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)
{
}
}
请记住,它很棘手,而不是直截了当,你将不得不处理一些例外情况,但那是家庭作业..上面的代码不是一个有效的代码,但你现在有了解决它的想法。请仔细阅读文档,它有一个很好的示例和与此事件相关的警告。
答案 1 :(得分:0)
你是什么意思ListViewItem的标题?你的意思是项目文字吗?我相信任何可检索的都是可修复和可控的。如果是项目文本,则可以编写检查方法
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});