如何为自定义组件添加一FileName属性,在设计窗口中通过OpenFileDialog得到值,或直接输入得到
就象PictureBox的属性Image一样,通过打开文件得到

解决方案 »

  1.   

    string _mytext; 
    public string MyText { 
    get { 
       return _mytext; 
        } 
    set { 
       _mytext = value; 
        } 
    }
      

  2.   

    不知道如何做。
    用File不行,我用窗体继承,File类的属性不可编辑,也不知道为什么.
      

  3.   

    Sample code as follows:
    [Browsable(true)]
    [Category("Behavior")]
    [DefaultValue(typeof(Image), "None")]
    public Image MyImage
    {
    get { return m_imgTemp; }
    set 

    m_imgTemp = value;
    this.BackgroundImage = m_imgTemp;
    }
    }
    private Image m_imgTemp;
      

  4.   

    用FileNameEditor类private string _fileName;
    [Editor(typeof(FileNameEditor), typeof(System.Drawing.Design.UITypeEditor))]
    public string FileName
    {
    set
    {
    _fileName = value;
    }
    get 

    return _fileName; 
    }
    }
      

  5.   

    从System.Drawing.Design.UITypeEditor继承一个新的类就可以了:)
      

  6.   

    晕死,有现成的FileNameEditor,为什么要从UITypeEditor继承一个新的类。
      

  7.   

    在父窗体,UserControl或Component中加File类型的属性,在在窗体中继承或调用,在属性编辑框中都不可编辑该属性.
    不知道这是怎么回事.
      

  8.   

    回lovvver(www.notsoft.cn),Component的属性一般要求都是要序列化的,
    即DesignerSerializationVisibility=true
      

  9.   

    [Editor(typeof(
     System.Windows.Forms.Design.FileNameEditor), 
     typeof(System.Drawing.Design.UITypeEditor))] public string XmlFile
    {
    get{return xmlFile;}
    set{xmlFile=value;}
      

  10.   

    那也简单啊,写一个继承FileNameEditor的类啊
    比如,我以前的代码是这样的:
    [Editor(typeof(
     XmlFileNameEditor),
     typeof(System.Drawing.Design.UITypeEditor))] public string XmlFile
    {
    get{}
    set{}
    }
    -----------------------------
    public class XmlFileNameEditor:System.Windows.Forms.Design.FileNameEditor
    {
    protected override void InitializeDialog(OpenFileDialog ofd) 

    ofd.Filter = "Xml 文件 (*.xml)|*.xml|所有文件 (*.*)|*.*"; 
    }
    }