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 の title とはどういう意味ですか? それはあなたが意味する項目テキストですか?取得可能なものは何でも修正可能で制御可能であると私は信じています。項目テキストなら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});