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

2016-02-19 14:54 9 1 收藏

清醒时做事,糊涂时读书,大怒时睡觉,无聊时关注图老师为大家准备的精彩内容。下面为大家推荐用ActiveX控件封装MaskEdit控件-->解决不能绑定的问题,无聊中的都看过来。

【 tulaoshi.com - 编程语言 】

  參考決定或改作通用的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。

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  從名稱欄位選擇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 IfElse  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 IfEnd Sub

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

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

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

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

来源:http://www.tulaoshi.com/n/20160219/1608295.html

延伸阅读
如果你希望用C++来写ActiveX®控件,有两个流行的框架,一个是Microsoft® Foundation Classes (MFC),另一个是ATL。我将深入的解释这两种框架对开发ActiveX控件所提供的支持,帮助你更好的决定哪种模型最适合你的开发环境和需求。 ActiveX 控件的完全形态 ActiveX控件基于构件对象模型COM,使得ActiveX控件成为可能...
818双胞胎如何形成?   双胞胎走在哪里都是众人的焦点,但事实上他们并不总是长得一模一样,可能只是相似甚至不太像。但是为了双喜临门,有的人耗费大量的财力、精力,毕竟育有双胞胎的几率较小。下面让我们一起走近双胞胎。    双胞胎的分类   双胞胎分为同卵双胞胎和异卵双胞胎两种。...
饮食禁忌 1、少吃油腻食物和甜食,这类食物热量高,营养价值低。 2、少用刺激性调料,如辣椒、咖喱、芥末等。 3、酸性食物吃的过多可改变母体血液酸碱度,影响胎儿的生长发育。 4、怀孕中末期会产生浮肿,需控制盐分摄入,禁食含盐过高豆腐乳、咸腌菜等。 5、油条中的明矾含铝,对胎儿大脑发育不利。 6、红...
上一次的程序演示了怎样做一个录音机的程序,不过我的主要目的是要做一个能嵌入网、Director、authorware 等应用软件的ActiveX 控件,下面就来看以下基本实现方法。 程序运行结果如下: 图一 为简单起见,本控件没有设置接口、属性、方法等等,基本的程序思路跟上一篇的类似,大家看源码,就晓得了。一个重要的心得就是,...
你知道ADO控件和DATA控件有冲突吗?试一试下面的例子: DimdbAsDatabase DimrsAsRecordset Setdb=OpenDatabase("d:stockyline.mdb") Setrs=db.OpenRecordset("selectcount(*)astotalcountfromylinewhere条件")*** MsgBox(rs(0)) rs.Close db.Close Setrs=Nothing Setdb=Nothing ‘注明,这个例子...

经验教程

575

收藏

5
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部