TextBox 控件的扩展, Help!!! 扩展功能(WEB项目中): 1.新增下拉功能, 下拉显示的数据从数据库中读取, 2.TextBox里的文本, 即可以自己输入, 也可以从下拉选择。望有经验的朋友, 给点思路, 最好有实例。多谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 呵呵,你有想法.大部分见过的都是用Div模拟出来的效果!像google的search. 奇怪,为什么不用combobox来实现?那样更为方便吧?什么下拉效果和从数据库查出来的匹配项不都有地方显示了? 重写textbox属性和事件参考http://www.cnblogs.com/honliv/articles/809353.htmlhttp://www.cnblogs.com/admin11/articles/1259577.html 请试用ajaxtoolkit 中的autocomplete 控件 [Category("自定义信息区")] [DefaultValue("false"), RefreshProperties(RefreshProperties.Repaint), Description("验证控件的字体删除线"), NotifyParentProperty(true)] public bool ValidateFontStrikeout { get { if (ViewState["ValidateFontStrikeout"] != null) return (bool)ViewState["ValidateFontStrikeout"]; return false; } set { ViewState["ValidateFontStrikeout"] = value; } } [Category("自定义信息区")] [DefaultValue(""), RefreshProperties(RefreshProperties.Repaint), Description("验证控件的CSSClass属性"), NotifyParentProperty(true)] public string ValidateCSSClass { get { if (ViewState["ValidateCSSClass"] != null) return ViewState["ValidateCSSClass"].ToString(); return string.Empty; } set { ViewState["ValidateCSSClass"] = value; } } [Category("自定义信息区")] [DefaultValue("false"), RefreshProperties(RefreshProperties.Repaint), Description("验证控件的字体下划线"), NotifyParentProperty(true)] public bool ValidateFontUnderline { get { if (ViewState["ValidateFontUnderline"] != null) return (bool)ViewState["ValidateFontUnderline"]; return false; } set { ViewState["ValidateFontUnderline"] = value; } } [Category("自定义信息区"), DefaultValue(""), Description("验证控件的字体名")] [Editor("System.Drawing.Design.FontNameEditor, System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor)), TypeConverter(typeof(FontConverter.FontNameConverter))] public string ValidateFontName { get { if (ViewState["ValidateFontName"] != null) return (string)ViewState["ValidateFontName"]; return string.Empty; } set { ViewState["ValidateFontName"] = value; } } #endregion #region 构造函数 public xxxTextBox() { } #endregion #region 重写子控件 protected override void EnsureChildControls() { this.rfvDataInput.CssClass = this.CssError; this.rfvDataInput.ErrorMessage = "*输入不能为空"; this.rfvDataInput.Display = System.Web.UI.WebControls.ValidatorDisplay.Dynamic; this.rfvDataInput.EnableViewState = true; this.rfvDataInput.ControlToValidate = base.ID; this.rfvDataInput.ForeColor = ValidateForeColor; this.rfvDataInput.BackColor = ValidateBackColor; if (ValidateFontSize != null) { this.rfvDataInput.Font.Size = ValidateFontSize; } this.rfvDataInput.Font.Bold = ValidateFontBold; this.rfvDataInput.Font.Italic = ValidateFontItalic; this.rfvDataInput.Font.Strikeout = ValidateFontStrikeout; this.rfvDataInput.Font.Overline = ValidateFontOverLine; this.rfvDataInput.Font.Underline = ValidateFontUnderline; if (!string.IsNullOrEmpty(ValidateFontName)) this.rfvDataInput.Font.Name = ValidateFontName; if (!string.IsNullOrEmpty(ValidateCSSClass)) this.rfvDataInput.CssClass = ValidateCSSClass; this.revDataInput.CssClass = this.CssError; this.revDataInput.ErrorMessage = "*输入格式错误"; this.revDataInput.Display = System.Web.UI.WebControls.ValidatorDisplay.Dynamic; this.revDataInput.EnableViewState = true; this.revDataInput.ControlToValidate = base.ID; this.revDataInput.ForeColor = ValidateForeColor; this.revDataInput.BackColor = ValidateBackColor; if (ValidateFontSize != null) { this.revDataInput.Font.Size = ValidateFontSize; } this.revDataInput.Font.Bold = ValidateFontBold; this.revDataInput.Font.Bold = ValidateFontBold; this.revDataInput.Font.Italic = ValidateFontItalic; this.revDataInput.Font.Strikeout = ValidateFontStrikeout; this.revDataInput.Font.Overline = ValidateFontOverLine; this.revDataInput.Font.Underline = ValidateFontUnderline; if (!string.IsNullOrEmpty(ValidateFontName)) this.revDataInput.Font.Name = ValidateFontName; if (!string.IsNullOrEmpty(ValidateCSSClass)) this.revDataInput.CssClass = ValidateCSSClass; //将子控件添加到此自定义控件中 this.Controls.Add(rfvDataInput); this.Controls.Add(revDataInput); this.Controls.Add(pnlFrame); if (this.ValidType == DataType.Date) this.Attributes.Add("onfocus", "WdatePicker({isShowClear:false,readOnly:true})"); } #endregion 呵呵 楼主肯定知道combobox滴!所以……5楼很强 急~请各位大大帮忙看看这个问题,在线等! 如和判断两个字符串相等???? 我想做一个题库管理系统,winform里面嵌入word编辑试题,试题应该怎么存储? C# listbox 显示问题(有难度) 如何做出象验证码那样的背景框???? 如何界面初始化就读取文件内容 System.Timers.Timer问题!!急急 C#中如何释放对象~? 菜鳥問題,如何實現excel的分頁打印? Web Services的一个问题 如何获得其他程序中Listview每个item的字体颜色? c#跨项目使用用户控件
大部分见过的都是用Div模拟出来的效果!像google的search.
参考
http://www.cnblogs.com/honliv/articles/809353.html
http://www.cnblogs.com/admin11/articles/1259577.html
[DefaultValue("false"), RefreshProperties(RefreshProperties.Repaint), Description("验证控件的字体删除线"), NotifyParentProperty(true)]
public bool ValidateFontStrikeout
{
get
{ if (ViewState["ValidateFontStrikeout"] != null)
return (bool)ViewState["ValidateFontStrikeout"];
return false;
}
set { ViewState["ValidateFontStrikeout"] = value; }
}
[Category("自定义信息区")]
[DefaultValue(""), RefreshProperties(RefreshProperties.Repaint), Description("验证控件的CSSClass属性"), NotifyParentProperty(true)]
public string ValidateCSSClass
{
get
{ if (ViewState["ValidateCSSClass"] != null)
return ViewState["ValidateCSSClass"].ToString();
return string.Empty;
}
set { ViewState["ValidateCSSClass"] = value; }
}
[Category("自定义信息区")]
[DefaultValue("false"), RefreshProperties(RefreshProperties.Repaint), Description("验证控件的字体下划线"), NotifyParentProperty(true)]
public bool ValidateFontUnderline
{
get
{ if (ViewState["ValidateFontUnderline"] != null)
return (bool)ViewState["ValidateFontUnderline"];
return false;
}
set { ViewState["ValidateFontUnderline"] = value; }
}
[Category("自定义信息区"), DefaultValue(""), Description("验证控件的字体名")]
[Editor("System.Drawing.Design.FontNameEditor, System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor)), TypeConverter(typeof(FontConverter.FontNameConverter))]
public string ValidateFontName
{
get
{
if (ViewState["ValidateFontName"] != null)
return (string)ViewState["ValidateFontName"];
return string.Empty;
}
set
{
ViewState["ValidateFontName"] = value;
}
} #endregion #region 构造函数
public xxxTextBox() { }
#endregion #region 重写子控件
protected override void EnsureChildControls()
{
this.rfvDataInput.CssClass = this.CssError;
this.rfvDataInput.ErrorMessage = "*输入不能为空";
this.rfvDataInput.Display = System.Web.UI.WebControls.ValidatorDisplay.Dynamic;
this.rfvDataInput.EnableViewState = true;
this.rfvDataInput.ControlToValidate = base.ID;
this.rfvDataInput.ForeColor = ValidateForeColor; this.rfvDataInput.BackColor = ValidateBackColor;
if (ValidateFontSize != null)
{
this.rfvDataInput.Font.Size = ValidateFontSize;
}
this.rfvDataInput.Font.Bold = ValidateFontBold;
this.rfvDataInput.Font.Italic = ValidateFontItalic;
this.rfvDataInput.Font.Strikeout = ValidateFontStrikeout;
this.rfvDataInput.Font.Overline = ValidateFontOverLine;
this.rfvDataInput.Font.Underline = ValidateFontUnderline;
if (!string.IsNullOrEmpty(ValidateFontName))
this.rfvDataInput.Font.Name = ValidateFontName;
if (!string.IsNullOrEmpty(ValidateCSSClass))
this.rfvDataInput.CssClass = ValidateCSSClass; this.revDataInput.CssClass = this.CssError;
this.revDataInput.ErrorMessage = "*输入格式错误";
this.revDataInput.Display = System.Web.UI.WebControls.ValidatorDisplay.Dynamic;
this.revDataInput.EnableViewState = true;
this.revDataInput.ControlToValidate = base.ID;
this.revDataInput.ForeColor = ValidateForeColor; this.revDataInput.BackColor = ValidateBackColor;
if (ValidateFontSize != null)
{
this.revDataInput.Font.Size = ValidateFontSize;
}
this.revDataInput.Font.Bold = ValidateFontBold;
this.revDataInput.Font.Bold = ValidateFontBold;
this.revDataInput.Font.Italic = ValidateFontItalic;
this.revDataInput.Font.Strikeout = ValidateFontStrikeout;
this.revDataInput.Font.Overline = ValidateFontOverLine;
this.revDataInput.Font.Underline = ValidateFontUnderline;
if (!string.IsNullOrEmpty(ValidateFontName))
this.revDataInput.Font.Name = ValidateFontName;
if (!string.IsNullOrEmpty(ValidateCSSClass))
this.revDataInput.CssClass = ValidateCSSClass; //将子控件添加到此自定义控件中
this.Controls.Add(rfvDataInput);
this.Controls.Add(revDataInput);
this.Controls.Add(pnlFrame);
if (this.ValidType == DataType.Date)
this.Attributes.Add("onfocus", "WdatePicker({isShowClear:false,readOnly:true})");
}
#endregion
5楼很强