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

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

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

Re[2]: FileNameEditorでファイル名のみ取得


(過去ログ 119 を表示中)

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

■69939 / inTopicNo.1)  FileNameEditorでファイル名のみ取得
  
□投稿者/ らうむ (6回)-(2014/02/13(Thu) 10:20:29)

分類:[.NET 全般] 

Win7 VS2010 C# .Net3.5

お世話になります。
PropertyGridにてファイル名の指定にFileNameEditorを使用しています。
以下のようなコードで割りつけており、ファイル選択ダイアログからファイル名を
指定すると、PropertyGrid上にはフルパス名で表示されます。

ですが、
・ファイル選択ダイアログから指定した場合はファイル名のみを反映したい。
・PropertyGrid上でテキスト編集部で直接書き込んだ場合、書き込んだ内容(パス情報も
ふくむ)のままで値を保存したい。

上記を実現することは可能でしょうか。


[EditorAttribute(typeof(System.Windows.Forms.Design.FileNameEditor), typeof(System.Drawing.Design.UITypeEditor))]
public string testFilename
{
get
{
return filename;
}
set
{
filename = value;
}
}
private string filename;

お手数ですがご教示の程、よろしくお願いしますm(__)m。
引用返信 編集キー/
■69944 / inTopicNo.2)  Re[1]: FileNameEditorでファイル名のみ取得
□投稿者/ 魔界の仮面弁士 (528回)-(2014/02/13(Thu) 10:59:19)
No69939 (らうむ さん) に返信
> ・ファイル選択ダイアログから指定した場合はファイル名のみを反映したい。
> ・PropertyGrid上でテキスト編集部で直接書き込んだ場合、書き込んだ内容(パス情報も
> ふくむ)のままで値を保存したい。


あらよっと。


using System;
using System.ComponentModel;
using System.Drawing.Design;
using System.IO;
using System.Windows.Forms.Design;

class Class1
{
    [Editor(typeof(FileNameOnlyEditor), typeof(UITypeEditor))]
    public string testFilename1 { get; set; }

    [Editor(typeof(FileNameEditor), typeof(UITypeEditor))]
    public string testFilename2 { get; set; }

    private class FileNameOnlyEditor : FileNameEditor
    {
        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            return Path.GetFileName(base.EditValue(context, provider, value) as string);
        }
    }
}

引用返信 編集キー/
■69957 / inTopicNo.3)  Re[2]: FileNameEditorでファイル名のみ取得
□投稿者/ らうむ (8回)-(2014/02/13(Thu) 12:28:26)
魔界の仮面弁士 さま
お世話になります。

目的の動作を実現できました。
ご回答、誠にありがとうございましたm(__)m。

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


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

このトピックに書きこむ

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

管理者用

- Child Tree -