没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|其它|编辑:郝浩|2007-09-12 10:37:47.000|阅读 1614 次
概述:
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
如果你想让鼠标移到按钮上更改背景颜色,移出后恢复,一般用以下代码,那能不能把他写成自定义控件呢?
<asp:Button ID="Button1" runat="server" onmouseover="this.style.backgroundColor='DodgerBlue';this.style.color='black';"
onmouseout="this.style.backgroundColor='Silver';this.style.color='black';" Text="Button" BackColor="Silver" BorderWidth="1px" Height="21px" />
现在我们就开始吧:
1、建立项目 ButtonColor,选择 Web 控件库
2、删除默认的文件 WebCustomControl1.cs,选择项目 ButtonColor 右键->添加-新建项,在弹出以下的窗口里选择 Web 自定义控件,名字为 ButtonColor
3、找到类 ButtonColor.cs 中的代码 public class ButtonColor : WebControl 一行,替换为:public class ButtonColor : System.Web.UI.WebControls.Button
4、删除 public class ButtonColor : System.Web.UI.WebControls.Button 一行下面大括号所包含的全部有代码,而替换为以下代码
protected override void Render(HtmlTextWriter output)
{
//设定按钮默认属性
base.Text = "Button";
base.BorderWidth = 1;
base.Height = 21;
base.Width = 57;
base.BackColor = System.Drawing.Color.Silver;
//获得用户设置的按钮颜色
base.Attributes.Add("onmouseover", "this.style.backgroundColor='DodgerBlue';this.style.color='black';");
base.Attributes.Add("onmouseout", "this.style.backgroundColor='Silver';this.style.color='black';");
base.Render(output);
}
5、选择项目 ButtonColor 右键->生成,如果没有发现错误,则一个控件就做完了
6、新建立一个网站 TestButtonColor,把生成的控件添加到工具箱里,方法是在工具箱的常规选项卡里点右键->选择项(见下图)
7、在弹出的对话框里,点“浏览”找到你刚才创建的控件 ButtonColor.dll
确定后,控件就加如到工具箱里了
8、拖放两个控件 ButtonColor 到网页里运行,效果如下,当鼠标放到控件上时,自动更改颜色
9、下面我们增加两个属性来改变鼠标放到按钮上的颜色,和鼠标移开按钮的颜色。首先打开刚才建立的项目 ButtonColor
10、选择项目 ButtonColor 下的引用,点右键->添加引用->选择 System.Windows.Forms->确定(原因是,属性里加个帮助对话框)
11、倒入命名空间 using System.Drawing;删除 ButtonColor.cs 里 Render 方法及其代码,替换为以下代码
private Color _MouseOverBgColor = Color.DodgerBlue;
private Color _MouseOutBgColor = Color.Silver;
/// </summary>
/// 设置鼠标在按钮上时,背景的颜色。
/// </summary>
[Browsable(true),
Category("Appearance"),
Description("设置鼠标在按钮上时,按钮背景的颜色.延边职大(中国.延吉)")]
public Color MouseOverBgColor
{
get
{
return this._MouseOverBgColor;
}
set
{
this._MouseOverBgColor = value;
}
}
/// <summary>
/// 设置鼠标移出后,按钮背景颜色。
/// </summary>
[Browsable(true),
Category("Appearance"),
Description("设置鼠标移出按钮后,按钮背景颜色.延边职大(中国.延吉)")]
public Color MouseOutBgColor
{
get
{
return this._MouseOutBgColor;
}
set
{
this._MouseOutBgColor = value;
}
}
/// <summary>
/// 将颜色转换为带“#”前缀的字符串(不是颜色名)
/// </summary>
/// <param name="color">颜色</param>
/// <returns>带#前缀的字符串</returns>
private string ColorToString(Color color)
{
return "#" + color.R.ToString("x").PadLeft(2, '0') +
color.G.ToString("x").PadLeft(2, '0') + color.B.ToString("x").PadLeft(2, '0');
}
/// <summary>
/// 将字符串(#RRGGBB)转换为 GDI+颜色(此处没用到,但很多人问,还是写上了)
/// </summary>
/// <param name="str">要转换的字符串</param>
/// <returns>GDI+颜色</returns>
private Color ColorFromString(string str)
{
return ColorTranslator.FromHtml(str);
}
/// <summary>
/// 指定控件的帮助信息
/// </summary>
private string _help = "帮助";
[CategoryAttribute("自定义编辑器"),
DefaultValueAttribute("1.0"),
DescriptionAttribute("获得控件主要属性的帮助。延边职大(中国.延吉)"),
ReadOnlyAttribute(true),
EditorAttribute(typeof(AppVerConverter), typeof(System.Drawing.Design.UITypeEditor))]
public string Help
{
get { return this._help; }
set { this._help = value; }
}
/// <summary>
/// 自定义UI的属性编辑器(弹出消息)
/// </summary>
public class AppVerConverter : System.Drawing.Design.UITypeEditor
{
/// <summary>
/// 覆盖此方法以返回编辑器的类型。
/// </summary>
public override System.Drawing.Design.UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return System.Drawing.Design.UITypeEditorEditStyle.Modal;
}
/// <summary>
/// 覆盖此方法以显示版本信息,Button 控件,版本 V1.0
/// </summary>
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
{
string help = " 改变按钮背景颜色帮助信息 ";
help += "主要属性: ";
help += "MouseOverBgColor 属性:设置鼠标在按钮上时,按钮背景的颜色。 ";
help += "MouseOutBgColor 属性:设置鼠标移出按钮后,按钮背景颜色。 ";
help += "Help 属性:弹出对话框,获得控件主要属性的帮助。 ";
help += " 开发作者:延边职大.许老师在线支持:xuhongkaicn@yahoo.com.cn";
help += " 版本更新: Version1.0:2007年";
System.Windows.Forms.MessageBox.Show(help, "帮助信息");
return value;
}
}
protected override void Render(HtmlTextWriter output)
{
//设定按钮默认属性
base.Text = "Button";
base.BorderWidth = 1;
base.Height = 21;
base.Width = 57;
base.BackColor = _MouseOutBgColor;
//获得用户设置的按钮颜色
if (_MouseOutBgColor.ToString() != "" && _MouseOverBgColor.ToString() != "")
{
base.Attributes.Add("onmouseover", "this.style.backgroundColor='" + ColorToString(_MouseOverBgColor) + "';this.style.color='black';");
base.Attributes.Add("onmouseout", "this.style.backgroundColor='" + ColorToString(_MouseOutBgColor) + "';this.style.color='black';");
}
base.Render(output);
}
12、重新生成此控件,并添加到工具箱里,此时拖放控件到网页里选择控件后,查看属性,发现此按钮多了 MouseOverBgColor 属性,MouseOutBgColor 属性,Help 属性。
![]() |
![]() |
13、当点帮助属性时,会弹出一个对话框,获得此控件的帮助
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
文章转载自:csdn接DevExpress原厂商通知,将于近日上调旗下产品授权价格,现在下单客户可享受优惠报价!
面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号