DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ユーザーコントロールのTextプロパティについて

分類:[.NET]

みなさん、こんにちは。

 VB.NET(2002 SP2)で、ユーザーコントロールの作成を行おうとしています。

UserControlを継承し、LabelとTimer を配置したもので試していますが、
Label に表示するTextを、テスト用に追加したWindows AP プロジェクトの
プロパティウィンドウを使って変更する事はできるのですが、保存ができません。
(保存後、閉じてから再ロードすると変更されていない)

 Timer のインターバル、Labelのフォントは、編集、保存できます。
Text という名前がいけないのでしょうか?又は何か記述が足りないのでしょうか?
どなたか、ご教授いただけないでしょうか?

Imports System.ComponentModel

<Serializable()> _
Public Class TimerLabel
Inherits System.Windows.Forms.UserControl

------- 略 --------------------

'タイマーの値は、編集、保存できる
<Category("Timer"), DefaultValue(200), Description("timer間隔")> _
Public Property Interval() As Integer
Get
Return Me.Timer1.Interval
End Get

Set(ByVal Value As Integer)
Me.Timer1.Interval = Value
End Set
End Property

'フォント情報も編集、保存できる
<Category("Font"), DefaultValue("MS UI Gothic, 24pt, style=Bold")> _
Public Overrides Property Font() As System.Drawing.Font
Get
Return Me.lbDisp.Font
End Get

Set(ByVal Value As System.Drawing.Font)
Me.lbDisp.Font = Value
End Set
End Property

'Textは編集できるが、保存できない??
<DefaultValue("Hello"), Browsable(True)> _
Public Overrides Property Text() As String
Get
Return lbDisp.Text
End Get

Set(ByVal Value As String)
Me.lbDisp.Text = Value
End Set
End Property
------- 略 --------------------
End Class

以上、よろしくお願いいたします。
こんばんは、うにさん。ピラルクです。

▼Develop Composite Controls --- Set the Caption
http://www.fawcette.com/vsm/2003_02/magazine/columns/desktopdeveloper/default_pf.aspx

によると、ControlクラスのTextプロパティであるため、
IDEはPropertyに対するコードを書かないとのこと。


InitializeComponentに手で書けば、確かにTextがLabelに反映された。
(でも、1回でもPropertyいじるとクリアされる)

この面白い問題(by AMiKAi)を回避するなら、名前をText以外に変える
ことが「ただ一つの解決」らしいです。
ピラルクさん、はじめまして。

 解説、ありがとうございました。
英語のそんな記事までお調べになっているのですね。
感服いたしました。

 どうも、Textというプロパティ名を変えるしか、ないようですね。
.NETのヘルプやMSDNの解説が解りづらく、間違いも多いので、サジを
投げかけていたのですが、大変、助かりました。
 また、見も知らぬ私の投稿に返信いただいた事、とても感謝してお
ります。
本当にありがとうございました。
すみません。

解決済みをチェックし忘れました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板