リストビューのキーの文字列の規則

解決


epd  2007-07-24 11:07:24  No: 99214

リストビューのキーの文字列の規則(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)"」はエラーが出ませんでした。

キーに指定できる文字列には一体どのような規則があるのでしょうか?ご存知の方、教えていただけないでしょうか?よろしくお願い致します。


魔界の仮面弁士  2007-07-24 11:25:33  No: 99215

登録済みの ListItem を得る場合には、
  Set x = ListView1.ListItems(1)
のように、インデックス番号で指定する方法と、
  Set x = ListView1.ListItems("Key1")
のように、キーを指定する方法とがあります。

数値として扱える文字列の場合、前者の構文と区別が付かないため、
そうしたキーは指定できないよう制限されている、というわけです。

# n = CLng("(1)") は、「-1」の意味になりますよね。


epd  2007-07-24 22:06:27  No: 99216

魔界の仮面弁士さん、いつも勉強させて頂いております。

> 数値として扱える文字列の場合、前者の構文と区別が付かないため、
> そうしたキーは指定できないよう制限されている、というわけです。
 
そのような制限があるとは全く知りませんでした。
キーに指定する文字列の先頭に適当な英字を付けるようにしました。

本当に助かりました。
どうもありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加