リストビューのキーの文字列の規則(VB5、WINXP)
リストビューに項目を追加するとき、
キーとして「"(1)"」などを指定すると「無効なキーです。」というエラーが出てしまいます。
リストビューコントロールを貼り付けて次のコードを実行すると再現されます。
Private Sub Form_Load()
ListView1.View = lvwReport
Set clmX = ListView1.ColumnHeaders.Add(, , "名前")
Set itmX = ListView1.ListItems.Add(, "(1)", "aaa")
End Sub
上のコードで、「"(1)"」のかわりに、「"("」や「"(1"」などとしてやるとエラーは出ませんでした。
「"(2)"」などでもエラーが出ました。
「"1(1)"」はエラーが出ませんでした。
キーに指定できる文字列には一体どのような規則があるのでしょうか?ご存知の方、教えていただけないでしょうか?よろしくお願い致します。
登録済みの ListItem を得る場合には、
Set x = ListView1.ListItems(1)
のように、インデックス番号で指定する方法と、
Set x = ListView1.ListItems("Key1")
のように、キーを指定する方法とがあります。
数値として扱える文字列の場合、前者の構文と区別が付かないため、
そうしたキーは指定できないよう制限されている、というわけです。
# n = CLng("(1)") は、「-1」の意味になりますよね。
魔界の仮面弁士さん、いつも勉強させて頂いております。
> 数値として扱える文字列の場合、前者の構文と区別が付かないため、
> そうしたキーは指定できないよう制限されている、というわけです。
そのような制限があるとは全く知りませんでした。
キーに指定する文字列の先頭に適当な英字を付けるようにしました。
本当に助かりました。
どうもありがとうございました。
ツイート | ![]() |