应该只需要那个属性就行了,譬如下面这个类似的例子没问题的using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Web.UI.Design;
using System.Drawing.Design;namespace MyControls
{
[DefaultProperty("Text"), 
ToolboxData("<{0}:MyImageTest runat=server></{0}:MyImageTest>")]
public class MyImageTest : System.Web.UI.WebControls.WebControl
{
private string text;

[Bindable(true), 
Category("Appearance"), 
DefaultValue("")] 
public string Text 
{
get
{
return text;
} set
{
text = value;
}
} private string imgURL; [EditorAttribute(typeof(System.Web.UI.Design.ImageUrlEditor), typeof(UITypeEditor))]
public string imageURL
{
get
{
return imgURL;
}
set
{
imgURL = value;
}
} protected override void Render(HtmlTextWriter output)
{
output.Write(Text);
output.Write("<img src='"+ imageURL + "'>");
}
}
}

解决方案 »

  1.   

    随便在设计界面加入一个ImageButton控件,然后看看属性窗口中看能否指定它的ImageUrl属性,这个属性和你的控件的属性是一样的,在设计时调用ImageUrlEditor编辑器来编辑图片路径,如果点击ImageUrl右边的“...”按钮效果和你的控件一样的话,那就是vs.net本身的问题了。
      

  2.   

    嗯,saucer的例子就可以,我的就不行。奇怪。我再好好找找原因。
      

  3.   

    随便在设计界面加入一个ImageButton控件,然后看看属性窗口中看能否指定它的ImageUrl属性,这个属性和你的控件的属性是一样的,在设计时调用ImageUrlEditor编辑器来编辑图片路径,如果点击ImageUrl右边的“...”按钮效果和你的控件一样的话,那就是vs.net本身的问题了。
      

  4.   

    我发现问题了。因为这个类是另一个控件的属性对应的类,好像font 类一样。如果这个类单独使用的话,就会出现选择url的窗口。但是被当成属性内嵌再另一个控件里的话,那个选择url的窗口就不会出现。
    请问saucer还有解决方法吗?谢谢!!!