お世話になっております
Windows7、VB2010 Expless で開発しております
後にVS2010のVBに移行する予定です
ユーザコントロールでテキストボックスを作っております
そこで、初期値を設定しようと思い設定をしたのですが反映されません
Imports System.ComponentModel
<DefaultValue(True)>
Public Property Chk_Num() As Boolean
Set(ByVal value As Boolean)
If (value = True) Then
blnChk_Num = value
Else
blnChk_Num = value
End If
End Set
Get
Return blnChk_Num
End Get
End Property
<System.ComponentModel.DefaultValueAttribute(1)> Public Property Chk_ZenHankaku() As Integer
Set(ByVal value As Integer)
If (value >= 0 And value <= 2) Then
'0以上2以下
blnChk_ZenHankaku = value
Else
'マイナス、または3以上の場合は0にする
blnChk_ZenHankaku = 0
End If
End Set
Get
Return blnChk_ZenHankaku
End Get
End Property
どちらの方法でも、Booleanの場合は「False」、Integerの場合は「0」になってしまいます
また、初期化~プロパティ宣言間に、改行しても改行しなくても結果は同じです
どうにか設定できる方法はありますでしょうか
よろしくお願いします
No.2ベストアンサー
- 回答日時:
>デフォルト値というのは「作ったコントロールをフォームのデザイナで貼り付けて、何もプロパティを変更してない場合に入っている値」
>という解釈であっていますでしょうか
一般的にはそいういうことだと思いますが、DefaultValueAttribute クラスで指定されるのは別の意味のようです。
Private mChk_Num As Boolean = True
<DefaultValue(False)> _
Public Property Chk_Num() As Boolean
Get
Return mChk_Num
End Get
Set(ByVal value As Boolean)
mChk_Num = value
End Set
End Property
とした場合、フォームにコントロールを貼り付けたときの値( 初期値 ) は True です。
デザイン画面でプロパティを見たとき、プロパティの値≠規定値(False) の場合、プロパティの値がボールドになります。
プロパティの値を False ( 規定値と一致 ) にすると通常のフォントになります。
解答ありがとうございます
理解しました!
プロパティの、最初の値から変えるとフォントが太くなりますが<DefaultValue>はその規定値の設定だったのですね
<DefaultValue(1)> で、private XX = 1
とすると値は「1」で普通のフォント、
<DefaultValue(1)> で、Private XX = 2
とすると値は「2」で太字
になるんですね
ありがとうございました
No.1
- 回答日時:
DefaultValue属性は,デザイナにデフォルト値を教えるものであって,
初期値を与える代替になる物ではありません。
MSDN: defaultValueAttribute クラス (System.ComponentModel)
http://msdn.microsoft.com/ja-jp/library/system.c …
にも,その旨が書かれています。
コンストラクタで,
blnChk_Num = True
blnChk_ZenHankaku = 1
と書いて,初期化をしてください。
この回答への補足
解答ありがとうございます
コンストラクタで設定したところ、思い通りに値が入りました!
すいません
私の説明不足+日本語不足なのですが・・・
デフォルト値というのは「作ったコントロールをフォームのデザイナで貼り付けて、何もプロパティを変更してない場合に入っている値」
という解釈であっていますでしょうか
ここを見た感じだとそのように感じます
http://www.sophia-it.com/content/%E6%97%A2%E5%AE …
私のやりたいことがまさにそれです
共通処理でテキストボックスを作り、それを各画面で貼り付け、変更もせずに最初に入っている値を設定したいのですができないです
なので初期値ではなく、「デフォルト値に値が入らない」ですね・・・
重ね重ね申し訳ありません
すいません
理解できました
変数宣言の初期値設定もしくはコンストラクタによる初期値設定で、最初に入る値が入るのですね
勘違いをしていました;
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JSONで文字列が長い時
-
【C#】数値の範囲チェックについて
-
メモリをアドレスを直接指定し...
-
ラズパイで感圧センサーを動か...
-
CGIでのページ指定~その(2)
-
Perlでアルファベットを数...
-
デコードできない時があります><
-
Application.ScreenUpdating = ...
-
16進の10進変換について
-
文字の横にプルダウンを表示さ...
-
formで特定のinputを送信しない...
-
回数を指定しないで空白行まで...
-
問題作成のWebアプリの作り方を...
-
ACCESS テキストボックスを隙...
-
子windowsからsubmit()後にclos...
-
pythonで演算子を変数に代入す...
-
FindFirst を複数条件で検索
-
【至急!!!】python言語で本を見...
-
<SELECT>タグの折り返し
-
構造体の各データの表示につい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JSONで文字列が長い時
-
メモリをアドレスを直接指定し...
-
【C#】数値の範囲チェックについて
-
map(STL)でinsertを行いたいで...
-
リロード後にプルダウンの選択...
-
フォームで入力した値を表示し...
-
Perlでアルファベットを数...
-
linq で 楽天ウェブサービスのX...
-
入力内容のチェック・・・『ま...
-
途中まで出来ているのですが‥(D...
-
CGI(Perl)で、Net::FTPを使いたい
-
前のページへ戻ったときのプル...
-
パターンマッチで変数でマッチ...
-
セレクトボックスについて
-
CGIやPHPで外部ファイルの内容...
-
デコードできない時があります><
-
Application.ScreenUpdating = ...
-
どちのほうがすきですか?
-
formで特定のinputを送信しない...
-
Pythonでターミナルに文字を出...
おすすめ情報