自定义按钮

来源:互联网 发布:java游戏地图编辑器 编辑:程序博客网 时间:2024/06/05 11:37
在建立网站时发现vs2005按钮的样式与网站的风格相差太远,而用css定义的话每加一个就要加载相应的css类,所以决定要自己做一个,比如我在css表上有这样两个分类
  1. .btn1_mouseout   
  2. {  
  3.     BORDER-RIGHT:   #B51032   1px   solid;   PADDING-RIGHT:   3px;   BORDER-TOP:    
  4.     #B51032   1px   solid;   PADDING-LEFT:   3px;   FONT-SIZE:   12px;   FILTER:    
  5.     progid:DXImageTransform.Microsoft.Gradient(GradientType=0,    
  6.     StartColorStr=#ffffff,   EndColorStr=#F2BE76);   BORDER-LEFT:   #B51032    
  7.     1px   solid;   CURSOR:   hand;   COLOR:#513666;   PADDING-TOP:   3px;    
  8.     BORDER-BOTTOM:   #B51032   1px   solid  ;
  9. }    
  10. .btn1_mouseover   
  11. {  
  12.     BORDER-RIGHT:   #7EBF4F   1px   solid;   PADDING-RIGHT:   3px;   BORDER-TOP:    
  13.     #7EBF4F   1px   solid;   PADDING-LEFT:   3px;   FONT-SIZE:   12px;   FILTER:    
  14.     progid:DXImageTransform.Microsoft.Gradient(GradientType=0,    
  15.     StartColorStr=#ffffff,   EndColorStr=#CAE4B6);   BORDER-LEFT:   #7EBF4F    
  16.     1px   solid;   CURSOR:   hand;   COLOR:   #513666;   PADDING-TOP:   3px;    
  17.     BORDER-BOTTOM:   ##7EBF4F   1px   solid  

要在网站中使用自定义的控件要用vs2005打开网站,然后文件->添加->新建项目->然后在弹出窗口中选项目类型为windows,再在右边选web 控件库,给库起个名字后按确定,就会在解决方案中看到新加入的项目了.在控件项目直接更改自动生成的第一个控件,在本例中我将其重命名为MyButton1,代码如下:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Text;
  5. using System.Web;
  6. using System.Web.UI;
  7. using System.Web.UI.WebControls;
  8. namespace MyControls
  9. {
  10.     [DefaultProperty("Text")]
  11.     [ToolboxData("<{0}:MyButton1 runat=server></{0}:MyButton1>")]
  12.     public class MyButton1 : System.Web.UI.WebControls.Button
  13.     {
  14.         private string _confirmMessage = "is OK?";
  15.         [Bindable(true)]
  16.         [Category("Appearance")]
  17.         [DefaultValue("is OK?")]
  18.         [Localizable(true)]
  19.         public string ConfrimMessage
  20.         {
  21.             get
  22.             {
  23.                 return _confirmMessage;
  24.             }
  25.             set
  26.             {
  27.                 _confirmMessage=value;
  28.             }
  29.         }
  30.         protected override void AddAttributesToRender(HtmlTextWriter writer)
  31.         {
  32.             base.AddAttributesToRender(writer);
  33.             writer.AddAttribute("onclick""return confirm('" + this._confirmMessage + "');");
  34.             writer.AddAttribute("class","btn1_mouseout");
  35.             writer.AddAttribute("onmouseover""this.className='btn1_mouseover'");
  36.             writer.AddAttribute("onmouseout""this.className='btn1_mouseout'");
  37.         }
  38.     }
  39. }
嘿嘿,顺便加了个提问的功能.写好这些后生成一下,然后就可以在网页中调用了.
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="temp.aspx.cs" Inherits="temp" %>
  2. <%@ Register Assembly="MyControls" Namespace="MyControls" TagPrefix="cc1" %>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" >
  5. <head runat="server">
  6.     <title>无标题页</title>
  7.     <link rel="Stylesheet" href="/Styles.css" type="text/css" />
  8. </head>
  9. <body>
  10.     <form id="form1" runat="server">
  11.         <br />
  12.         <br />
  13.         <br />
  14.         <cc1:MyButton1 ID="MyOK" runat="server" Text="搞掂" />
  15.         <br />
  16.         <br />
  17.     </form>
  18. </body>
  19. </html>

其中
<%@ Register Assembly="MyControls" Namespace="MyControls" TagPrefix="cc1" %>这句是声明自定义控件用的!
<link rel="Stylesheet" href="/Styles.css" type="text/css" />是放按钮样式的css文件,我还不知道如何将css格式嵌入到自定义控件中去,以后会用了再加入吧,如果有此方面心得的同志不彷留言提点一下,谢谢!