用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心编程技巧VisualBasic

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

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-03-16 19:45:29

 

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

lee_jvn@21cn.com  oicq:37198873

?⒖??Q定或改作通用的activeX控件.

         (1)新建一ActiveX Control工程.
             放置一maskedit控件於上.
             其?O置?傩??⒖既缦?:
                usercontrol之name:DataDate.
  usercontrol之DataBindingBehavior?O定1-VvbSimpleBound
                MaskedtBox之name:mskDate.

          (2).新增一?????傩杂渺督?定.操作如下(我用?榉斌w系?y,可能?f法不大一??).
             打?_菜??: 增益集-->增益集管理?T.
             ?d入Visual Basic AcitveX控制??介面精?`?K????.
      ?行至:建立自??的介面成?T??新增一Property:DateValue(此?傩约??槟?要操作??定的??).
      下一步?_定?????P系:
       ?⒊S玫墓?用??目中的?傩允录?按照??定至mskDate.如mskDate?o相?P之?傩院涂山?定至usercontrol上.
              在公用??目中??DateValue之?Y料??型?O定Date型
              完成上述操作.
 


          (3). ??DateValue?O定?Y料??定?傩?.

               ?c?xusercontrol。
        打?_  工具--->程序?傩?.
              
               ?拿??Q?谖贿x??DateValue.
               ?①Y料?B?Y??中如下?x?翊蛏瞎?:
               “?傩跃哔Y料?B?Y功能”
               “在?傩灾蹈淖?前,先呼叫CanPropertyChange.
                “即?r更新”

                此?rDataValue即具有??????定功能。此控件的?傩灾芯???增加?T如DataSource.DataField等??.

           (4).????代?a。
             a.?O定控件大小.

  Private Sub UserControl_Resize()
   MskDate.Move 0, 0, UserControl.Width, usercontrol.Height
  End Sub
             b.??dateValue的代?a修正如下:
        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
,此??即?榕??嗨??鬟M?淼闹凳欠窈虾跻?求,如果是有效的??就?@示在mskDate中,否?t就?@示成其他的方式。

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" . ?Y料就??更改DataField所??定的?Y料?谖坏闹? .
 
 最後?⒐こ叹??g成控件DataDate.ocx 加以引用,DataValue?傩约聪喈?於text的text?傩栽谖??n中可以直接?{用.
 
          用以上方法可以自定?x?Y料??定控件用於我??的特殊??理。

                                                            lee_jvn於2001.02.15
        OICQ:37198873           


Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:27,218.75000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号