質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

Q&A

1回答

4573閲覧

PropertyGridのプロパティ名の日本語表示

Yomyorient

総合スコア6

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

0グッド

0クリップ

投稿2015/02/21 07:23

Visual C++のWindows Formsアプリケーションの開発において,Formのデザイン画面でツールボックスからPropertyGridを追加し,SelectedObjectを設定することでアプリケーション内でクラス(SelectedObject)をいじることができます.このとき,プロパティの表示名の変更ができず困っております.
以下のような自作のクラスではDisplayNameを設定することで表示名の変更ができました.

lang

1ref class myClass{ 2private: int myInt; 3public: 4 myClass(){myInt = 0;}; 5public: 6 [DisplayName("整数")] 7 property int Int{ 8 int get(){return myInt;} 9 void set(int value){myInt = value;} 10 }; 11};

しかし,TextBoxクラスやChartクラスなど既存のクラスの表示名の変更方法が分かりません.ご存知の方いらっしゃいましたらご教授ください.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

既存のクラスにDisplayName属性が無ければ、継承するなりして属性を付加するしかないと思います。
それが困難なクラスの場合は、PropertyGridに追加するmyClassのプロパティで、setメソッドから相手のクラスの値を更新することになるでしょう。

投稿2015/02/22 00:28

shinosan

総合スコア209

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yomyorient

2015/02/25 07:23

継承して属性を付加するというのは,新しくプロパティを作らずにできるのでしょうか? また,MemberDescriptorクラスのDisplayNameプロパティはsetメソッドを持たないのですが,setメソッドは追加することができるのでしょうか? 見当はずれでしたら申し訳ありません.
shinosan

2015/02/25 08:53

属性(Attrribute)はクラス全体に属性を付加する事もできます。「既存のクラスの表示名」とあったので、こちらかと思いました。この場合は、プロパティの追加は必要ありません。 myClassのIntプロパティのようにTextBoxなどのプロパティに属性を追加するのなら、そのプロパティがvirtualでないと元のプロパティを隠蔽してしまうので、面倒なことになるかもしれません。 また、MemberDescriptorそのものを継承するわけではありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問