简陋的会计凭证金额输入控件

今天看到金碟的会计凭证,看到了它很人性化的金额输入框,突然兴起也想玩个,就做了这么简陋的一个.
不过这也是我第一个自定义控件,以后慢慢的完善它,达到有用的程度
其实很简单.先把代码贴出来,再介绍代码的说明
None.gif using  System;
None.gif
using  System.ComponentModel;
None.gif
using  System.Web.UI;
None.gif
using  System.Web.UI.WebControls;
None.gif
namespace  Voucher
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    [DefaultProperty(
"jText")]
InBlock.gif    [ToolboxData(
@"<{0}:VoucherInput jText = '000'  
InBlock.gif    runat='server'></{0}:VoucherInput>
")
InBlock.gif    ]
InBlock.gif    
public class VoucherInput : WebControl, INamingContainer
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif      
InBlock.gif        
private TextBox _TextBox;
InBlock.gif
ContractedSubBlock.gifExpandedSubBlockStart.gif        
属性#region 属性
InBlock.gif        [
InBlock.gif        Bindable(
true),
InBlock.gif        Category(
"Appearance"),
InBlock.gif        DefaultValue(
""),
InBlock.gif        Description(
"金额")
InBlock.gif        ]
InBlock.gif        
public string jText
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
get
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                EnsureChildControls();
InBlock.gif                
return _TextBox.Text;
ExpandedSubBlockEnd.gif            }

InBlock.gif            
set
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                EnsureChildControls();
InBlock.gif                _TextBox.Text 
= value;
ExpandedSubBlockEnd.gif            }

ExpandedSubBlockEnd.gif        }

InBlock.gif
ExpandedSubBlockEnd.gif        
#endregion
 Properties delegated to child controls
InBlock.gif
ContractedSubBlock.gifExpandedSubBlockStart.gif        
方法#region 方法
InBlock.gif        
protected override void CreateChildControls()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            Controls.Clear();
InBlock.gif            _TextBox 
= new TextBox();
InBlock.gif            _TextBox.ID 
= "TextBox1";
InBlock.gif            _TextBox.MaxLength 
= 15;
InBlock.gif            _TextBox.Width 
= 120;
InBlock.gif            _TextBox.Height 
= 20;
InBlock.gif            _TextBox.Attributes.Add(
"onkeypress""keyPress()");
InBlock.gif            _TextBox.Style.Add(HtmlTextWriterStyle.BackgroundImage, 
"url(Images/text.gif)");
InBlock.gif            _TextBox.Style.Add(HtmlTextWriterStyle.Direction, 
"rtl");
InBlock.gif            _TextBox.Style.Add(HtmlTextWriterStyle.BorderWidth, 
"0");
InBlock.gif
InBlock.gif            
this.Controls.Add(_TextBox);
InBlock.gif
ExpandedSubBlockEnd.gif        }

InBlock.gif
InBlock.gif        
protected override void Render(HtmlTextWriter writer)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            AddAttributesToRender(writer);
InBlock.gif            _TextBox.RenderControl(writer);
InBlock.gif            writer.Write(
"<script language=javascript>function keyPress(){if(!(event.keyCode>=48&&event.keyCode<=57 ||event.keyCode==46||event.keyCode==45)){event.keyCode = 0;}}</script>");
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif        
#endregion
 Overriden methods
InBlock.gif
ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}

None.gif

一、添加引用
      using System.Web.UI; 
      using System.Web.UI.WebControls;
二、设置默认的属性和默认的标志
      [DefaultProperty("jText")]
      [ToolboxData(@"<{0}:VoucherInput jText = '0.00' runat='server'>") ]
      他们在asp.net的设计页面上就等于<cc1:VoucherInput ID="VoucherInput1" runat="server" jText="0.00" />
三、设置TextBox的属性
      背景图片、最大字符等等
四、输出javascrip脚本,控制文本框只能输入数字和小数点
五、界面如下
10-26-1.gif
总结
这个还是有很大的问题,还远远打不到金碟的水平,不过这个也是我第一个自定义控件,我会不断的升级,如果真的能和金蝶做的一样,会马上发布的。

转载于:https://www.cnblogs.com/jiekeng/archive/2006/10/26/541075.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值