- PR -

コントロールのNameプロパティ

投稿者投稿内容
Masa
ベテラン
会議室デビュー日: 2007/03/19
投稿数: 65
投稿日時: 2007-10-22 09:22
おはようございます。

VB2005でコントロールのNameプロパティのデフォルトを変更することは可能でしょうか?(例TextBox=text1なのをTextBox=txt)

コントロール名を3文字または4文字で設定するようにするためにデフォルトでそのような値が入ってくればいいという話があったもので。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-10-22 09:44
引用:

Masaさんの書き込み (2007-10-22 09:22) より:

VB2005でコントロールのNameプロパティのデフォルトを変更することは可能でしょうか?(例TextBox=text1なのをTextBox=txt)


デザイナによる初期値は、System.ComponentModel.Design.ComponentDesigner.InitializeNewComponent メソッドあたりで設定します。 Name プロパティは設定できるとは思いますが、そもそも Name プロパティと デザイナで決められる識別名は同じものではありませんよ。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Masa
ベテラン
会議室デビュー日: 2007/03/19
投稿数: 65
投稿日時: 2007-10-22 11:03
引用:

じゃんぬねっとさんの書き込み (2007-10-22 09:44) より:
Name プロパティは設定できるとは思いますが、そもそも Name プロパティと デザイナで決められる識別名は同じものではありませんよ。





じゃんぬねっとさん
書き込みありがとうございます。
要はツールボックスからフォーム上にドラックした状態で表示されるNameプロパティのデフォルトを設定したいのですが、それは出来ないということですね?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-10-22 11:59
引用:

Masaさんの書き込み (2007-10-22 11:03) より:

要はツールボックスからフォーム上にドラックした状態で表示されるNameプロパティのデフォルトを設定したいのですが、それは出来ないということですね?


あーっと、すみません。 そこに関しては "Masa さんが本当に変更したいのは識別名の方ではないのでしょうか?" という以上の意味は持っておりません。 Name プロパティを変更することで Masa さんの目的が達成できるかどうかがわからなかったので確認の意味で書いたつもりでした。

Name プロパティに対して実際に試みたことがないのでどうなるかわからないです。 そもそも変更できないかもしれません。 こちらで試したいのですが、ちょっと環境がないので試すことができません。 申し訳ありません。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
nakaP
大ベテラン
会議室デビュー日: 2005/09/27
投稿数: 138
お住まい・勤務地: 高知
投稿日時: 2007-10-22 13:34
こんにちは。
既存コントロールを継承したカスタムコントロールクラスを作成し、そのクラス名を任意の名前にしてはどうでしょうか。
コード:
(例)
Public Class txt
	Inherits System.Windows.Forms.TextBox
End Class


でも後ろに数字(txt1、txt2)がつくのは避けられないと思いますし、結局識別する為に名前を変更すると思うのであまり意味はないかもしれません。
Masa
ベテラン
会議室デビュー日: 2007/03/19
投稿数: 65
投稿日時: 2007-10-22 13:34
じゃんぬねっとさん

テストしてみようとしましたがいまいちわかりません。
フォームに貼り付けた時に設定されるNameを変更したいのですがうまく出来そうもありませんね。

ありがとうございます。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-10-22 18:11
引用:

J.J.さんの書き込み (2007-10-22 13:34) より:

でも後ろに数字(txt1、txt2)がつくのは避けられないと思いますし、結局識別する為に名前を変更すると思うのであまり意味はないかもしれません。


というよりは識別子なのでサフィックスがつかないと、名前の重複が避けられなくなってしまうのでまずいですよね。(数字でなくてもいいですが同じことです)

J.J. さんの回答はクラス名が一般的なガイドラインから脱してしまいますが、目的から見た現実解としては正解だと思います。 質問者の意図が識別名か Name プロパティなのかいまだに自信が持てませんが、識別名だとしたら確実に私のは不正解です。

# マクロでも通した方が長い目で見て柔軟だと思います...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
nakaP
大ベテラン
会議室デビュー日: 2005/09/27
投稿数: 138
お住まい・勤務地: 高知
投稿日時: 2007-10-23 09:24
私はIDEでFormにControlを貼り付けた時にプロパティウインドウの[(Name)]項目の事を言っているのだと思いました。
そこの規定値はクラス名+数字(サフィクス)になるみたいなので、継承させてクラス名を変えればいいんじゃないかと思いまして。

引用:

クラス名が一般的なガイドラインから脱してしまいます



これは書いてから思いました。でもまあプロジェクトのメンバーが理解しているんであれば狭い範囲ならいいのかなとも思いまして。
私はやですけど。

引用:

# マクロでも通した方が長い目で見て柔軟だと思います...



VS2005をまだあまり触ってないのですが、こういう機能がついてるのですね。
#少し触ってみたんですが、フツーにデザインしたほうが楽な気が・・・

スキルアップ/キャリアアップ(JOB@IT)