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

原创 2001年02月15日 15:29:00

 

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

lee_jvn@21cn.com  oicq:37198873

參考決定或改作通用的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屬性在文檔中可以直接調用.
 
          用以上方法可以自定義資料綁定控件用於我們的特殊處理。

                                                            lee_jvn於2001.02.15
        OICQ:37198873           

ActiveX控件localhost可以调用,内外网IP不可以的解决办法

开发ActiveX控件过程中遇到这样的问题: 本机上开发完成后,用TstCon测试接口没问题。js写静态页面测试调用没问题。但是给到web端开发,他们使用内网IP或者外网地址时,会报错。如图: 开...
  • passionkk
  • passionkk
  • 2016年06月17日 16:22
  • 1514

JavaScript如何触发ActiveX控件的事件,并得到事件中的参数

最近在使用公司购买的一款图形ActiveX控件,开发web端时遇到一个问题:JavaScript如何触发ActiveX控件的事件,并得到事件中的参数。在谷歌和百度上找了很多资料,感觉还是不清楚是如何触...
  • minminsu
  • minminsu
  • 2014年04月02日 16:24
  • 1241

解决Windows 7系统中Visual Studio 2008/2010不能使用MSCOMM ActiveX控件的问题

  • 2012年09月11日 17:08
  • 1.88MB
  • 下载

Delphi不注册COM直接使用ActiveX控件并绑定事件

文笔不行,直接上源码: 主窗口: unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUt...
  • love3s
  • love3s
  • 2012年03月30日 15:59
  • 5309

解决Window 7系统中Visual Studio 2010不能使用MSCOMM ActiveX控件的问题

步骤 VS2010没有自带MSCOMM控件,首先在该页面下载MSCOMM控件包:http://download.csdn.net/detail/rabbit200808/3236756(在此感谢...
  • Plutus_Lee
  • Plutus_Lee
  • 2012年09月24日 10:55
  • 1381

Delphi 正则表达式控件(掩码编辑框MaskEdit)的使用方法

一、基础知识简介:                     掩码编辑框(MaskEdit)是一种特殊的编辑框。使用它可以设计出许多复杂的输入格式。在选用 MaskEdit之后,需要为它设计一个输入...
  • xiongmao000738
  • xiongmao000738
  • 2011年09月27日 21:01
  • 1012

解决ActiveX控件没有在此计算机上注册的问题

  • 2017年05月11日 20:38
  • 14.36MB
  • 下载

VC6.0中基于MSFlexGrid(ActiveX控件)的可编辑表格的制作及其若干问题的解决方案

VC6.0中基于MSFlexGrid(ActiveX控件)的可编辑表格的制作及其若干问题的解决方案
  • fengbingchun
  • fengbingchun
  • 2011年04月27日 15:02
  • 3473

已安全化的ActiveX控件卸载时出现"DllUnregisterServer函数出错,错误代码:0x80070002"问题解决

关于ActiveX控件实现安全的初始化和脚本请查看这篇博文        当已经使用命令行卸载已经实现安全的初始化和脚本的ActiveX控件时会看到出现“DllUnregisterServe...
  • waxgourd0
  • waxgourd0
  • 2012年04月20日 14:31
  • 6955

单机情况下,IE浏览器访问activeX控件出现红叉问题的解决

本人也是刚接触activeX控件,自己通过vs2010编写了几个简单的例子,经测试工具测试过都可以用,在html文件添加之后如果双击文件用IE打开,会有加载控件之类的提示,但是在浏览器中输入url地址...
  • huangyz59420
  • huangyz59420
  • 2013年08月08日 22:39
  • 3192
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用ActiveX控件封装MaskEdit控件-->解决不能绑定的问题
举报原因:
原因补充:

(最多只允许输入30个字)