用ActiveX控件封装MaskEdit控件-解决不能绑定的问题

參考決定或改作通用的activeX控件.

(1)新建一ActiveX Control工程.

放置一maskedit控件於上.

其設置屬性參考如下:

usercontrol之name:DataDate.

usercontrol之DataBindingBehavior設定1-VvbSimpleBound

MaskedtBox之name:mskDate.

(2).新增一數據屬性用於綁定.操作如下(我用為繁體系統,可能說法不大一樣).

打開菜單: 增益集-->增益集管理員.

載入Visual Basic AcitveX控制項介面精靈並啟動.

運行至:建立自訂的介面成員處新增一Property:DateValue(此屬性即為您要操作綁定的東東).

下一步確定對應關系:

將常用的公用項目中的屬性事件按照綁定至mskDate.如mskDate無相關之屬性和可綁定至usercontrol上.

在公用項目中將DateValue之資料類型設定Date型

完成上述操作.

(3). 將DateValue設定資料綁定屬性.

點選usercontrol。

打開 工具--->程序屬性.

從名稱欄位選擇DateValue.

將資料連結項中如下選擇打上勾:

“屬性具資料連結功能”

“在屬性值改變前,先呼叫CanPropertyChange.

“即時更新”

此時DataValue即具有數據綁定功能。此控件的屬性中就會增加諸如DataSource.DataField等東東.

(4).編寫代碼。

a.設定控件大小.

Private Sub UserControl_Resize()
   MskDate.Move 0, 0, UserControl.Width, usercontrol.Height
  End Sub
       b.將dateValue的代碼修正如下:
     Public Property Let DateValue(ByVal New_DateValue As Date)
    m_DateValue = New_DateValue
    PropertyChanged "DateValue"
    If Not IsEmpty(m_DateValue) Then
      If IsDate(m_DateValue) Then
        If Year(m_DateValue) > 1970 Then
          MskDate.Text = Format(m_DateValue, "yyyy/mm/dd")
        Else
          MskDate.Text = "____/__/__"
        End If
      Else
        MskDate.Text = "____/__/__"
      End If
    Else
      MskDate.Text = "____/__/__"
    End If
  End Property

,此處即為判斷所傳進來的值是否合乎要求,如果是有效的話就顯示在mskDate中,否則就顯示成其他的方式。

Private Sub MskDate_Validate(Cancel As Boolean)
If IsDate(Trim(MskDate.Text)) Then
   If CanPropertyChange("DateValue") Then
     m_DateValue = CDate(MskDate.Text)
     PropertyChanged "DateValue"
   End If
Else
   MsgBox "Invalid date value!", vbExclamation, "Date Error!"
  
   If Not IsEmpty(m_DateValue) Then
     If IsDate(m_DateValue) Then
       If Year(m_DateValue) > 1970 Then
         MskDate.Text = Format(m_DateValue, "yyyy/mm/dd")
       Else
         MskDate.Text = "____/__/__"
       End If
     Else
       MskDate.Text = "____/__/__"
     End If
   Else
     MskDate.Text = "____/__/__"
   End If
  
End If
End Sub

'此處即判斷mskDate的值是否有效,如果有效的話就調用  PropertyChanged "DateValue" . 資料就會更改DataField所綁定的資料欄位的值 .

最後將工程編譯成控件DataDate.ocx 加以引用,DataValue屬性即相當於text的text屬性在文檔中可以直接調用.

用以上方法可以自定義資料綁定控件用於我們的特殊處理。

时间: 2024-09-20 22:29:30

用ActiveX控件封装MaskEdit控件-解决不能绑定的问题的相关文章

非常ASP.NET: 使用ASP.NET控件封装Silverlight

世界上许多 ASP.NET 开发人员都想知道如何将 SilverlightTM 整合到其应用程序中,以及整合到其应用程序的什么位置.显然,回答该问题并不是那么容易,因为可以采用的方法多种多样.您可以将整个页面作为一个 Silverlight 控件并在此页面上执行任何操作,也可以在页面上确定 Silverlight 作用到的部分,并在更能体现许多 UI 元素作用的地方集成这些 UI 元素,您更有可能采取后一种方法. 有时将后一种方法称为在页面上"添加丰富多彩的岛屿".而有了 Silver

ExtJs 备忘录(2)—— Form表单(二) [ 控件封装 ]

前言 本以为可以稳稳当当的工作.安安心心的写文章,结果我做了一件非常疯狂的事情,换新工作一周后辞了--然后去了另外一家公司 - - #,理由就不详说了,总之现在是每天加班到8-9点,虽然如此但是这个团队非常棒,喜欢这里的气氛,大家都努力的工作着,经理也是常睡在公司,希望产品顺顺利利的月底上线,我也加油 !不过这样一来文章可能会慢点,挤挤时间吧:  ) 本篇主要是将对Ext常用控件和属性进行封装,以减少动辄几百行的JS代码,也方便使用. 系列 1. ExtJs 备忘录(1)-- Form表单(一)

activex-linux环境 java 开发类似Activex功能的插件或控件

问题描述 linux环境 java 开发类似Activex功能的插件或控件 linux环境 java 开发类似Activex功能的插件或控件,能够访问本地的程序

Visual Basic 6.0 控件和 .NET 控件的区别

visual|控件|区别 Visual Basic 6.0 控件和 .NET 控件的区别 摘要:本文简单介绍了 Microsoft Visual Basic 6.0 中的标准控件和等效的 Microsoft .NET 控件. 目标 了解哪些 Visual Basic 6.0 ActiveX 控件在 .NET 中具有等效控件. 了解 .NET 控件中哪些属性发生了变化. 了解 .NET 中有哪些新控件. 前提条件 要彻底理解本文内容,需要满足以下条件: 了解什么是 ActiveX 控件. 使用 V

Visual Basic 6.0 控件和 .NET 控件的区别后记

visual|控件|区别 Public Class frmTest    Inherits System.Windows.Forms.Form #Region " Windows Form Designer generated code "     Public Sub New()        MyBase.New()         'Windows 窗体设计器必需此调用.        InitializeComponent()         '调用 InitializeCom

Visual Basic 6.0 控件和 .NET 控件的区别(续)

visual|控件|区别 图 1:典型的数据输入屏幕 如图 1 所示,在用键盘键入数据的输入窗体上,您可能希望使 Add.Update.Delete 和 Clear 按钮保持在窗体的右下角.要实现此目的,请突出显示这些按钮,然后将 Anchor 属性设置为 BottomRight.要执行此操作,请在 Properties 窗口中找到 Anchor 属性,并单击其下拉箭头.清除选择左边和上边的栏,然后选择右边和下边的栏,如图 2 所示. 图 2:已激活 Anchor 下拉列表的 Propertie

ASP.NET关于Login控件使用,LoginView 控件,CreateUserWizard 控件

原文:ASP.NET关于Login控件使用,LoginView 控件,CreateUserWizard 控件 Login控件它是属于Membership服务的一部分,必须配置Membership提供程序和数据库... 如果你要使用自己的数据库则必须继承MembershipProvider抽象类重写自己的提供程序并正确配置Web.config...   ASP.NET登陆控件比较多,封装了大部分WEB应用中要实现系统登陆的系列功能,涉及到很多方面.众多 ASP.NET 登录控件一起为 ASP.NE

求方法:web网页开发,想把dropdownlist控件和gridview控件的某一列绑定

问题描述 求方法:web网页开发,想把dropdownlist控件和gridview控件的某一列绑定 先上图: 实现老师查询选择这门课的学生功能: 首先老师可能会教很多课,所以需要选择所教授的课程,比如c语言,然后gridview就自动把选择c语言的学生显示出来. 我不知道是不是用dropdownlist控件,如果不是,烦请大神告诉我设计思路,感激不尽. 解决方案 dropdownlist下拉触发回发,在SelectedIndexChanged中重新根据条件查询绑定gridviewhttp://

file控件和image控件实现图片预览

两种方式:1.用js实现           2.直接在控件的事件处理函数中添加语句(相当于将js的函数代码直接写在此处,如注释处所写)           注意:此处可以用<input type='file'>也可以用<asp:FileUpload>实现,虽然后者没有onchange事件,但是强行使用的时候,虽然提示[validation (asp.net):attribute 'onchange' is not a valid attribute of element 'Fil