- PR -

ユーザコントロールのプロパティに日本語表示のドロップダウンを使いたい

1
投稿者投稿内容
comeseesee
常連さん
会議室デビュー日: 2004/11/24
投稿数: 36
投稿日時: 2005-04-15 11:55
こんにちは。
C#でユーザコントロールを作っていますが、そのユーザコントロールのプロパティに日本語を表示できるドロップダウンを使いたいです。
英語の場合は
public enum DrawingMode {
Happy = 0,
Sad = 1,
Angry = 2
}
のような列挙体を使えばできるみたいですが、
しかし、列挙体に日本語が使えませんので、プロパティに日本語のドロップダウンを表示することもできません。
他の日本語のドロップダウンを表示する方法がご存知でしたら、教えていただきたいですが。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-04-15 13:19
comeseeseeさん、こんにちは。

引用:

しかし、列挙体に日本語が使えませんので、プロパティに日本語のドロップダウンを表示することもできません。


え? 日本語使えません?
プロパティグリッドに表示できるかどうかは知りませんけど。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2005-04-15 13:57
たしかTypeConverterを使って実現できますよ。
comeseesee
常連さん
会議室デビュー日: 2004/11/24
投稿数: 36
投稿日時: 2005-04-15 14:00
詳しい説明していなくてすみません。

>>しかし、列挙体に日本語が使えませんので、プロパティに日本語のドロップダウンを表>>示することもできません。
とは

以下のように書いたら、「無効なトークン '' が クラス、構造体またはインターフェイスのメンバ宣言で使用されています。」のエラーが出てきました。

public enum Point
{
1−小数点以下切捨てなし = 0,
2−小数点以下切捨てあり = 1
}
えムナウ
大ベテラン
会議室デビュー日: 2004/06/10
投稿数: 187
お住まい・勤務地: 東京
投稿日時: 2005-04-15 14:10
>「無効なトークン '' が クラス、構造体またはインターフェイスのメンバ宣言で使用されています。」のエラーが出てきました。
"1−"はエラーになるようですね。

小数点以下切捨てなし = 0,
小数点以下切捨てあり = 1
なら大丈夫でしょう。

>たしかTypeConverterを使って実現できますよ。
TypeConverter.GetStandardValues メソッド ですね。
comeseesee
常連さん
会議室デビュー日: 2004/11/24
投稿数: 36
投稿日時: 2005-04-15 15:15
>小数点以下切捨てなし = 0,
>小数点以下切捨てあり = 1
>なら大丈夫でしょう。

どうしても、選択項目の頭に数字をつけなければならない場合があります。例えば
「3D」の場合...
えムナウ
大ベテラン
会議室デビュー日: 2004/06/10
投稿数: 187
お住まい・勤務地: 東京
投稿日時: 2005-04-15 19:24
>どうしても、選択項目の頭に数字をつけなければならない場合があります。
TypeConverter.GetStandardValues メソッド を調べてください。
そのような用途でも実装可能です。
_________________
えムナウ Microsoft MVP for Visual Developer - C#,2005/01-2007/12
えムナウのプログラミングのページ Blog1 Blog2
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-04-17 15:14
 全角ですが、数字はDecimalDigitNumberあたりに分類されるので、ダメなんでしょうね。
参考:
12. Visual Basic .NET 文法のまとめ「2.2 識別子」
コントロール名で使用不可("〒"、"&"、"#"など)の全角文字を探しています。

C# 言語の仕様 C. 文法の「C.1.6 識別子」を見ると、C#だと使えそうなんだよなぁ。。。

引用:

VB.NETの場合

IdentifierStart ::=
AlphaCharacter |
UnderscoreCharacter IdentifierCharacter


[qoute]
C#の場合

identifier-start-character:
letter-character
_ (アンダースコア記号 U+005F)

letter-character:
クラス Lu、Ll、Lt、Lm、Lo、または Nl の Unicode 文字
クラス Lu、Ll、Lt、Lm、Lo、または Nl の文字を表す unicode-escape-sequence
[/quote]
VB.NETは、識別子スタートが「アルファベット」か、「アンダースコアとキャラクタ」になっている。
C#は、「キャラクタ」か、「アンダースコア」となっている。

_________________
1

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