Michael R Mattys
mmattys at rochester.rr.com
Sun Feb 11 10:14:00 CST 2007
Based upon Shamil Salakhetdinov's previous work using WithEvents in Access, I created a simple spreadsheet form ... 'Template Form Attached Application.LoadFromText acForm, "Spreadsheet", "C:\Spreadsheet.txt" '-----clsSpreadsheet----- Private WithEvents Form As Form Private mcolControls As New Collection Private mobjSelfRef As Object Private mblnTerminateCalled As Boolean Public Sub Init(ByRef rfrm As Access.Form) DeepsAttach rfrm End Sub Public Sub Terminate() Dim obj As Object If mblnTerminateCalled = False Then For Each obj In mcolControls On Error Resume Next obj.Terminate Err.Clear Next mblnTerminateCalled = True End If End Sub Private Sub DeepsAttach(ByRef rfrm As Access.Form) Set Form = rfrm Set mobjSelfRef = Me Form!lblHwnd.Caption = Form.hwnd Dim ctl As Access.Control Dim objTxt As clsSSTextBox For Each ctl In Form.Controls If TypeOf ctl Is Access.TextBox Then Set objTxt = New clsSSTextBox objTxt.Init ctl mcolControls.Add objTxt End If Next End Sub '-----clsSSTextbox----- Private WithEvents mtxt As Access.TextBox Private msngLastX As Single Private msngLastY As Single Private mlngBackColor As Long Private mstrLastCtlName As String Public Sub Init(ByRef rtxt As Access.TextBox) Set mtxt = rtxt mlngBackColor = mtxt.BackColor mtxt.OnEnter = "[Event Procedure]" mtxt.OnExit = "[Event Procedure]" mtxt.OnMouseMove = "[Event Procedure]" mtxt.OnGotFocus = "[Event Procedure]" mtxt.OnLostFocus = "[Event Procedure]" End Sub Private Sub mtxt_Enter() mlngBackColor = mtxt.BackColor mtxt.BackColor = 16776960 End Sub Private Sub mtxt_Exit(Cancel As Integer) mtxt.BackColor = mlngBackColor End Sub Private Sub mtxt_GotFocus() mtxt.BackColor = vbRed End Sub Private Sub mtxt_Lostfocus() mtxt_Exit 0 End Sub Private Sub mtxt_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) On Error GoTo mtxt_MouseMove_Err ' If msngLastX <> X Or msngLastY <> Y Then ' If mstrLastCtlName <> mtxt.Name Then mtxt.SetFocus ' End If ' End If msngLastX = x msngLastY = y mstrLastCtlName = mtxt.Name mtxt_MouseMove_Err: End Sub Michael R. Mattys MapPoint & Access Dev www.mattysconsulting.com -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: Spreadsheet.txt URL: <http://databaseadvisors.com/pipermail/accessd/attachments/20070211/66ecae9b/attachment-0001.txt>