掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ユーザーコントロールにListプロパティを設置するには? (ID:121535)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
特攻隊長まるるうさん、マグさん、魔界の仮面弁士さん ありがとうございます。 結論から言うと「あきらめました」(T-T) 代わりに次のような方法で同様の結果を得ることが出来ましたので 報告致します。 目的は、フォームデザイン時、ユーザーコントロールのコンボボッ クス内容を設定するということ 1、まずパブリックプロパティでList及びItemDataを作成します。 属性はどちらもStringです。 キモは設定したい項目をセミコロンで区切って設定することです。 ex.)"aaa;bbb;ddd" , "0;1;2" 2、受け取った値をプロパティ用プライベート変数m_List、m_ItemData に保存します。 3、次のような関数で内在コントロールのコンボボックスに設定します。 Private Function Set_List() As Boolean Const conSTR_SEMICOLON As String = ";" Const conSTR_ZERO As String = "0" Dim strBuf_List() As String Dim strBuf_ItemData() As String Dim i As Integer Set_List = False bIsPaint = True '意図しないClickEventの回避用 If Trim(m_List) = vbNullString Then m_ItemData = vbNullString GoTo EXT End If strBuf_List() = Split(m_List, conSTR_SEMICOLON) strBuf_ItemData() = Split(m_ItemData, conSTR_SEMICOLON) ReDim Preserve strBuf_ItemData(UBound(strBuf_List())) For i = LBound(strBuf_ItemData()) To UBound(strBuf_ItemData()) strBuf_ItemData(i) = Trim(strBuf_ItemData(i)) If Not IsNumeric(strBuf_ItemData(i)) Then strBuf_ItemData(i) = conSTR_ZERO End If Next With Combo1 .Clear For i = LBound(strBuf_List()) To UBound(strBuf_List()) .AddItem strBuf_List(i), i .ItemData(i) = CLng(strBuf_ItemData(i)) Next .ListIndex = m_ListIndex End With Set_List = True EXT: bIsPaint = False End Function #おもいっきりソース載せちゃってすいません。 以上のような方法で実装することにしました。 こうしてみるとコード量は増えたものの使い勝手は かえっていいかもと思えてきました。 色々アドバイスありがとうございました。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.