C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ユーザーコントロール 値の受け渡し


(過去ログ 107 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■64026 / inTopicNo.1)  ユーザーコントロール 値の受け渡し
  
□投稿者/ ぼっくり (1回)-(2012/11/03(Sat) 13:54:27)

分類:[.NET 全般] 

2012/11/03(Sat) 13:57:00 編集(投稿者)

現在、vb.netで開発してます。

経験が浅いもので、皆さんのお力を貸していただけたら幸いです。


=============================
ユーザーコントロールを作成しており、
A項目に対して、ラベル1〜10までが内包されてます。
同様に同一フォーム内で、B項目に対しても、ラベル1〜10まで内包されてます。

値は、プロパティ(配列)で渡されてきますが、スマートなコーディングがあればご教授下さい。
(渡されてきた値はプロパティ内でセットするのが一般的なんでしょうか?)

ちなみに、現在は以下の通りに書いてます。
※ソース引用せず、直書きなので、細かい記述漏れは目をつぶって下さい。


Public Property valueA() as String()
Public Property valueB() as String()

#初期処理メソッド
Dim labelName As String = "Label"
Dim lblName As String = "lbl"
Dim index As Integer = 0

For Each c In Form.Control
If c.getType().equars.(getType(Label) Then

If c.Name.indexOf(labelName) = 0 Then
index = c.Name.Substring(labelName.Length, c.Name.Length - labelName.Length)

c.Text = Me.valueA(index)

ElseIf c.Name.indexOf(lblName) = 0 Then
index = c.Name.Substring(lblName.Length, c.Name.Length - lblName.Length)

c.Text = Me.valueB(index)

EndIf

End If
Next
引用返信 編集キー/
■64033 / inTopicNo.2)  Re[1]: ユーザーコントロール 値の受け渡し
□投稿者/ shu (86回)-(2012/11/05(Mon) 14:05:52)
No64026 (ぼっくり さん) に返信

私はControlsをまわすのではなく固定で配列化する方法を使います。
個数が多い場合はデザイン配置ではなくコード内で生成するようにしています。
プロパティは配列をプロパティにするのではなく引数付きプロパティによる実装にします。


Private lblAry() as Label

Public Sub New()
    ・・・・
    lblAry= new Label() {Label1, Label2, Label3, ... , Labeln}
End Sub 


Public Property valueA(Index as Integer) as String
    Get
        Return lblAry(Index).Text
    End Get
    Set(value As String)
        lblAry(Index).Text = Value
    End Set
End Property

引用返信 編集キー/
■64067 / inTopicNo.3)  Re[2]: ユーザーコントロール 値の受け渡し
□投稿者/ ぼっくり (2回)-(2012/11/06(Tue) 22:25:07)
No64033 (shu さん) に返信

例示いただきありがとうございます。

ソース抜けてましたが、controlsでループしているのには、
初期化も含ませてたからです。

返信いただけたことで、一つ、勉強させていただきました。
ありがとうございます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -