C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[8]: プロパティの中のメンバも更新したい


(過去ログ 119 を表示中)

[トピック内 10 記事 (1 - 10 表示)]  << 0 >>

■70157 / inTopicNo.1)  プロパティの中のメンバも更新したい
  
□投稿者/ C#研究者 (44回)-(2014/02/26(Wed) 17:56:27)

分類:[C#] 


実行環境 Windows7 32bit
開発環境 Windows7 32bit VisualStudio C#2010

コントロールのプロパティの中のSizeやFontプロパティの横には
矢印が付いていて、開くと中のメンバ(X,Y)の値を個別に設定できます。

そのような仕掛けにしたいと思うのですが、
独自のオブジェクト型を作ってもそのような仕組みになりません。
どのように設定すればよいのでしょうか。
引用返信 編集キー/
■70159 / inTopicNo.2)  Re[1]: プロパティの中のメンバも更新したい
□投稿者/ Hongliang (176回)-(2014/02/26(Wed) 18:08:48)
http://www.comrade.co.jp/component/dotnetroom/kt_vsdn/kt_vs3a.htm
この辺など参照にして下さい。
引用返信 編集キー/
■70160 / inTopicNo.3)  Re[1]: プロパティの中のメンバも更新したい
□投稿者/ 魔界の仮面弁士 (546回)-(2014/02/26(Wed) 18:10:34)
No70157 (C#研究者 さん) に返信
> コントロールのプロパティの中のSizeやFontプロパティの横には
> 矢印が付いていて、開くと中のメンバ(X,Y)の値を個別に設定できます。

型コンバーター(TypeConverter)を用意する必要があります。
とりあえず、ExpandableObjectConverterを割り当ててみてください。

http://msdn.microsoft.com/ja-jp/library/aa302326.aspx
http://d.hatena.ne.jp/setuna-kanata/20090127/1233068229
http://dobon.net/vb/dotnet/control/propertygrid.html#expandable

引用返信 編集キー/
■70163 / inTopicNo.4)  Re[2]: プロパティの中のメンバも更新したい
□投稿者/ C#研究者 (45回)-(2014/02/26(Wed) 19:02:14)
皆様ありがとうございます

ConvertFromメソッドとConvertToメソッドの実装がよくわかりません。
なので素のままExpandableObjectConverterをくっつけてみたのですがやはりうまくいきませんでした。

特にどのような文字列でデータを返却すればよいか悩んでおります。
どのように実装すればよいのでしょうか。

[TypeConverter(typeof(ExpandableObjectConverter))]
public class TenKeyData
{
/// <summary>
/// 表示テキスト
/// </summary>
public string strDisplayText { set; get; }

/// <summary>
/// 送信キーデータ
/// </summary>
public Keys SendData { set; get; }

/// <summary>
/// フォント
/// </summary>
public Font font { set; get; }

/// <summary>
/// テキストの向き
/// </summary>
public ContentAlignment TextAlign { set; get; }
}
引用返信 編集キー/
■70181 / inTopicNo.5)  Re[3]: プロパティの中のメンバも更新したい
□投稿者/ C#研究者 (46回)-(2014/02/27(Thu) 11:57:11)
少し話が違いますが、
○○.Textの横に三角のボタンがついていて、クリックすると改行が入力できる
テキストがポップアップしてきますが、あれもExpandableObjectConverterによるものなのでしょうか。
引用返信 編集キー/
■70184 / inTopicNo.6)  Re[4]: プロパティの中のメンバも更新したい
□投稿者/ 魔界の仮面弁士 (548回)-(2014/02/27(Thu) 14:28:58)
No70181 (C#研究者 さん) に返信
> ○○.Textの横に三角のボタンがついていて、クリックすると改行が入力できる

複数行入力の話でしょうか。だとしたら、EditorAttribute にて
MultilineStringEditorを指定しましょう。

http://msdn.microsoft.com/ja-jp/library/system.componentmodel.design.multilinestringeditor.aspx

[EditorAttribute(typeof(MultilineStringEditor), typeof(UITypeEditor))]
引用返信 編集キー/
■70185 / inTopicNo.7)  Re[5]: プロパティの中のメンバも更新したい
□投稿者/ C#研究者 (47回)-(2014/02/27(Thu) 15:49:21)
[System.ComponentModel.Editor(
typeof(System.ComponentModel.Design.MultilineStringEditor),
typeof(System.Drawing.Design.UITypeEditor))]

とするとSystem.ComponentModel.Design.MultilineStringEditorでエラーが発生しました。
リファレンスを参照するとSystem.ComponentModel.Designの中にあるようなのでSystem.ComponentModel.Designを
くっつけたのですが、名前空間の中に存在しませんといわれてしまいました。

どこか別の名前空間の場所へ移動したのでしょうか。

引用返信 編集キー/
■70186 / inTopicNo.8)  Re[6]: プロパティの中のメンバも更新したい
□投稿者/ 魔界の仮面弁士 (549回)-(2014/02/27(Thu) 16:03:35)
No70185 (C#研究者 さん) に返信
> どこか別の名前空間の場所へ移動したのでしょうか。

アセンブリを参照設定していますか?
そのクラスがどのアセンブリに含まれているのか、MSDN で DLL 名を確認してみてください。
引用返信 編集キー/
■70187 / inTopicNo.9)  Re[7]: プロパティの中のメンバも更新したい
□投稿者/ C#研究者 (48回)-(2014/02/27(Thu) 17:58:46)
わかりました。

ClientProfile4.0 → Fullの4.0へ切り替えたら参照の追加にSystem.Designが出てきました。
Fullのフレームワーク版でしか入れることができないdllもあるのですね。
解決済み
引用返信 編集キー/
■70188 / inTopicNo.10)  Re[8]: プロパティの中のメンバも更新したい
□投稿者/ C#研究者 (49回)-(2014/02/27(Thu) 17:59:14)
お礼を忘れておりました。
回答ありがとうございます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -