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

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

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

Re[7]: PropertyGrid でファイル・パスをセットするには


(過去ログ 27 を表示中)

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

■12529 / inTopicNo.1)  PropertyGrid でファイル・パスをセットするには
  
□投稿者/ επιστημη (773回)-(2008/01/11(Fri) 11:05:19)
επιστημη さんの Web サイト

分類:[.NET 全般] 

PropertyGridにアタッチするフィールドがColorやFontの場合、
Grid上ではそれぞれ適切なインタフェイスを提供してくれるやないですか。
たとえばFontだとGridの右端に"..."ボタンがあって、クリックすればFont-dialogが現れます。

ファイルのパスをPropertyGridにアタッチしたいんです。
Font同様右端に"..."ボタン、クリックすれば OpenFileDialog(or SaveFileDialog)が現れてほしい。

どうやって実現するんでしょうか?

引用返信 編集キー/
■12530 / inTopicNo.2)  Re[1]: PropertyGrid でファイル・パスをセットするには
□投稿者/ Hongliang (222回)-(2008/01/11(Fri) 11:18:03)
2008/01/11(Fri) 11:27:05 編集(投稿者)

System.Windows.Forms.Design.FileNameEditor をどうぞ。
System.ComponentModel.Design, System.Drawing.Design, System.Windows.Forms.Design 辺りに色々ありますね。

[追記]
ただ、OpenFileDialog 決め撃ちです。派生させればプロパティはいじれますけど。
SaveFileDialog 使いたいとなるとエディタの自作になるんでしょうねー。
ボタン置くぐらいならそんなに手間でもないのかな。
UITypeEditor で調べて見てください。
引用返信 編集キー/
■12533 / inTopicNo.3)  Re[2]: PropertyGrid でファイル・パスをセットするには
□投稿者/ 七曜 (33回)-(2008/01/11(Fri) 11:34:47)
No12530 (Hongliang さん) に返信
> System.Windows.Forms.Design.FileNameEditor をどうぞ。
> System.ComponentModel.Design, System.Drawing.Design, System.Windows.Forms.Design 辺りに色々ありますね。

#επιστημηさんなので既知かも知れませんが

使うのは、FileNameEditorなどのサービスですが、
対象のプロパティのデザイン時にどのサービスを提供するかは、
プロパティにDesignerAttributeをつけることでできます。
[DesignerAttribute クラス]
http://msdn2.microsoft.com/ja-jp/library/system.componentmodel.designerattribute.aspx

[チュートリアル : Visual Studio のデザイン時機能を活用した Windows フォーム コントロールの作成]
http://msdn2.microsoft.com/ja-jp/library/35ea88wb(VS.80).aspx



引用返信 編集キー/
■12536 / inTopicNo.4)  Re[3]: PropertyGrid でファイル・パスをセットするには
□投稿者/ επιστημη (774回)-(2008/01/11(Fri) 12:03:48)
επιστημη さんの Web サイト
> #επιστημηさんなので既知かも知れませんが

ぃゃーUI回りはサパーリす。C++屋ですし...

> 使うのは、FileNameEditorなどのサービスですが、
> 対象のプロパティのデザイン時にどのサービスを提供するかは、
> プロパティにDesignerAttributeをつけることでできます。

あ、いや、デザイン時とかじゃなくて、アプリケーションのUIの一部にPropertyGridを貼るです。

public class Settings {
private string user_;
private string path_;

[Description("だれが"),Category("ヒト")]
public string Who { get { return who_; } set { who_ = value; } }

[Description("なにを"),Category("モノ"),
/* ここになんかかくだけすか? なんてかくですか? */]
public string What { get { return path_; } set { path_ = value; } }
}

なんてのをこさえておいて、

propertyGrid1.SelectedObject = Settingsのインスタンス;

しとけば実行時に善きに計らってくれるってなスンポーで。

引用返信 編集キー/
■12540 / inTopicNo.5)  Re[4]: PropertyGrid でファイル・パスをセットするには
□投稿者/ 七曜 (35回)-(2008/01/11(Fri) 12:49:31)
2008/01/11(Fri) 12:57:59 編集(投稿者)
No12536 (επιστημη さん) に返信
> あ、いや、デザイン時とかじゃなくて、アプリケーションのUIの一部にPropertyGridを貼るです。

実行時でしたら、EditorAttribute クラス でしたm(__)m
[EditorAttribute クラス]
http://msdn2.microsoft.com/ja-jp/library/system.componentmodel.editorattribute.aspx

でもって、こんな感じですかね。

    public class Settings
    {
        private string who_;
        private string path_;

        [Description("だれが"), Category("ヒト")]
        public string Who { get { return who_; } set { who_ = value; } }

        [Description("なにを"), Category("モノ")]
        [EditorAttribute(typeof(System.Windows.Forms.Design.FileNameEditor), typeof(System.Drawing.Design.UITypeEditor))]
        public string What { get { return path_; } set { path_ = value; } }
    }

(System.Design.dllへの参照が必要になります。)

引用返信 編集キー/
■12542 / inTopicNo.6)  Re[5]: PropertyGrid でファイル・パスをセットするには
□投稿者/ επιστημη (776回)-(2008/01/11(Fri) 13:14:49)
επιστημη さんの Web サイト
> [EditorAttribute(...
コレは
 [Editor(...
コレがせーかいなのかな。

ばっちしでした。
Hongliangさん・七曜さん ありがとです。

解決済み
引用返信 編集キー/
■12543 / inTopicNo.7)  Re[6]: PropertyGrid でファイル・パスをセットするには
□投稿者/ よねKEN (101回)-(2008/01/11(Fri) 13:45:58)
2008/01/11(Fri) 13:46:34 編集(投稿者)

>>[EditorAttribute(...
> コレは
>  [Editor(...
> コレがせーかいなのかな。

C#、VBでは属性指定のときのクラス名のポストフィックスのAttributeは
省略できる仕様となっています。

#解決済みチェックのため編集
解決済み
引用返信 編集キー/
■12544 / inTopicNo.8)  Re[7]: PropertyGrid でファイル・パスをセットするには
□投稿者/ επιστημη (777回)-(2008/01/11(Fri) 13:51:17)
επιστημη さんの Web サイト
> C#、VBでは属性指定のときのクラス名のポストフィックスのAttributeは
> 省略できる仕様となっています。

あ、省略「できる」なんだ。「すべし」ぢゃなくて。

解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -