C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.56238 の関連記事表示

<< 0 | 1 >>
■56238  UserControlとValidatingについて
□投稿者/ KK -(2011/01/06(Thu) 13:36:28)

    分類:[VB.NET/VB2005 以降] 

    開発環境:WinXP SP3 
    使用言語:Visual Basic .NET 2005

    以下の条件の場合に、Validating イベントが2回連続で発生してしまいます。
    通常は1回の発生だと思っていたのですが、2回発生してしまうのは仕様でしょうか。

    情報をお持ちの方がおられましたら、ご教示いただけませんでしょうか。
    よろしくお願い致します。

    @UserControl上にTextBoxを1個作成し、UserControlを作成。

    AForm上に@で作成したUserControl(A)とTextBox(B)を作成。

    BTextBox(B)のValidatingイベントに
    Private Sub TextBoxB_Validating(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBoxB.Validating
    e.Cancel = (TextBoxB.Text = String.Empty)
    Debug.Print("TextBoxB_Validating")
    End Sub

    CTextBox(B)の値が空白の状態で、UserControl上のTextBoxをマウスでクリック。

    ※1回目は1度しか発生しないのですが、続けてUserControl上のTextBoxを再度クリックすると
    Validatingイベントが2回発生してしまいます。

    ※Tabキー、SelectNextControlでのフォーカス移動では、1回のみの発生でした。
親記事 /過去ログ94より / 関連記事表示
削除チェック/

■56240  Re[1]: UserControlとValidatingについて
□投稿者/ todo -(2011/01/06(Thu) 15:09:07)
    > 2回発生してしまうのは仕様でしょうか。

    バグだと思います。
    StackTraceを比較してみては?

    Debug.WriteLine((New StackTrace(True)).ToString())
記事No.56238 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56241  Re[1]: UserControlとValidatingについて
□投稿者/ shu -(2011/01/06(Thu) 15:29:18)
    No56238 (KK さん) に返信

    A:UserControlのTextBox
    B:TextBoxB
    C:UserControl

    としたとき

    Cをクリックしてから、Aをクリックすると1回づつの発生となるので、
    これらが同時に発生しているかと思われます。
    また
    Aにフォーカスを移動 -> Bへフォーカスを移動 -> Bのテキストを空にする
    -> Aをクリック ==> Validatingは1回発生
    となる
    ValidatingがキャンセルされたときにCのActiveControlがAではなくなり
    AをクリックすることによりCとAへの移動という2アクション発生し1回目
    のValidatingでCへの移動がキャンセルされ2回目のValidatingではAのActive化が
    キャンセルされているのではないでしょうか?(もしくは逆)

記事No.56238 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56244  Re[2]: UserControlとValidatingについて
□投稿者/ KK -(2011/01/06(Thu) 16:20:25)
    shu 様
    ご返信いただき、誠にありがとうございます。

    >A:UserControlのTextBox
    >B:TextBoxB
    >C:UserControl

    > ValidatingがキャンセルされたときにCのActiveControlがAではなくなり
    > AをクリックすることによりCとAへの移動という2アクション発生し1回目
    > のValidatingでCへの移動がキャンセルされ2回目のValidatingではAのActive化が
    > キャンセルされているのではないでしょうか?(もしくは逆)

    教えていただいた情報をもとに、もう一度調査してみます。
    いろいろ試していただき、本当にありがとうございます。

    ※CheckBox、ComboBoxで、同様に確認してみました。
    結果は、1回しかValidatingイベントは発生しませんでした。
    TextBoxを調整することで、回避できそうな気もしますが・・・。

記事No.56238 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56243  Re[1]: UserControlとValidatingについて
□投稿者/ KK -(2011/01/06(Thu) 15:58:32)
    todo様
    ご返信いただき、誠にありがとうございます。
    
    >Debug.WriteLine((New StackTrace(True)).ToString())
    StackTraceで確認してみましたところ、1回目と2回目で違った場所がありました。
    
    以下の部分を再度調べてみます。
    
    ************************************************************************************************************************
       場所 WindowsApplication1.Form1.TextBox1_Validating(Object sender, CancelEventArgs e) 場所 
       場所 System.Windows.Forms.Control.OnValidating(CancelEventArgs e)
       場所 System.Windows.Forms.Control.NotifyValidating()
       場所 System.Windows.Forms.Control.PerformControlValidation(Boolean bulkValidation)
       場所 System.Windows.Forms.ContainerControl.ValidateThroughAncestor(Control ancestorControl, Boolean preventFocusChangeOnError)
       場所 System.Windows.Forms.ContainerControl.EnterValidation(Control enterControl)
       場所 System.Windows.Forms.ContainerControl.UpdateFocusedControl()
       場所 System.Windows.Forms.ContainerControl.AssignActiveControlInternal(Control value)
       場所 System.Windows.Forms.ContainerControl.ActivateControlInternal(Control control, Boolean originator)
       場所 System.Windows.Forms.ContainerControl.ActivateControlInternal(Control control, Boolean originator)
       場所 System.Windows.Forms.ContainerControl.ActivateControlInternal(Control control)
       場所 System.Windows.Forms.Control.WmSetFocus(Message& m)
       場所 System.Windows.Forms.Control.WndProc(Message& m)
       場所 System.Windows.Forms.TextBoxBase.WndProc(Message& m)
       場所 System.Windows.Forms.TextBox.WndProc(Message& m)
       場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       場所 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    ----------------------------------------------------------------------------------------------------------------------
       1回目
       場所 System.Windows.Forms.UnsafeNativeMethods.SetFocus(HandleRef hWnd)
       場所 System.Windows.Forms.Control.FocusInternal()
    ----------------------------------------------------------------------------------------------------------------------
       2回目 ※1回目の部分が以下のように変わっていました。
              ※ その他の部分は同じ流れで表示されていました。
       場所 System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
       場所 System.Windows.Forms.NativeWindow.DefWndProc(Message& m)
       場所 System.Windows.Forms.Control.DefWndProc(Message& m)
       場所 System.Windows.Forms.Control.WmMouseDown(Message& m, MouseButtons button, Int32 clicks)
       場所 System.Windows.Forms.Control.WndProc(Message& m)
       場所 System.Windows.Forms.TextBoxBase.WndProc(Message& m)
    ----------------------------------------------------------------------------------------------------------------------
       場所 System.Windows.Forms.TextBox.WndProc(Message& m)
       場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       場所 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       場所 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       場所 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
       場所 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       場所 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       場所 System.Windows.Forms.Application.Run(ApplicationContext context)
       場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
       場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
       場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
       場所 WindowsApplication1.My.MyApplication.Main(String[] Args) 場所 17d14f5c-a337-4978-8281-53493378c1071.vb:行 81
       場所 System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
       場所 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       場所 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       場所 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       場所 System.Threading.ThreadHelper.ThreadStart()
    ************************************************************************************************************************
    
    
    
記事No.56238 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56245  Re[2]: UserControlとValidatingについて
□投稿者/ todo -(2011/01/06(Thu) 16:40:47)
    2011/01/06(Thu) 16:45:11 編集(投稿者)

    > 場所 System.Windows.Forms.TextBox.WndProc(Message& m)

    ここの引数がどうなっているか気になりますね。

    検証用のカスタムコントロール
    Public Class TextBoxEx
    Inherits TextBox
    Private cnt As Integer = 0
    Protected Overrides Sub WndProc(ByRef m As Message)
    cnt += 1
    System.Diagnostics.Debug.WriteLine(String.Format("{0}:S{1}:{2}", Me.Name, cnt, m))
    MyBase.WndProc(m)
    System.Diagnostics.Debug.WriteLine(String.Format("{0}:E{1}:{2}", Me.Name, cnt, m))
    cnt -= 1
    End Sub
    End Class
記事No.56238 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56249  Re[3]: UserControlとValidatingについて
□投稿者/ KK -(2011/01/06(Thu) 19:16:02)
    todo 様
    返信が遅くなり、申し訳ありません。
    
    > 2011/01/06(Thu) 16:45:11 編集(投稿者)
    > 
    >>  場所 System.Windows.Forms.TextBox.WndProc(Message& m)
    > 
    > ここの引数がどうなっているか気になりますね。
    > 
    
     TextBox(B)の部分を先ほど記載いただきましたTextBoxExに
    置き換えて出力してみました。
    
    単純なTextの比較で申し訳ありません。
    
    *******************************************************************************************************************
    TextBoxEx1:S1:msg=0x8 (WM_KILLFOCUS) hwnd=0x1007b8 wparam=0x16077e lparam=0x0 result=0x0
    TextBoxEx1:S2:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0x1007b8 wparam=0x20007b8 lparam=0x1007b8 result=0x0
    TextBoxEx1:E2:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0x1007b8 wparam=0x20007b8 lparam=0x1007b8 result=0x0
    TextBoxEx1:E1:msg=0x8 (WM_KILLFOCUS) hwnd=0x1007b8 wparam=0x16077e lparam=0x0 result=0x1
    TextBoxEx1:S1:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x1007b8 wparam=0x0 lparam=0xffffffffc000000f result=0x0
    TextBoxEx1:E1:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x1007b8 wparam=0x0 lparam=0xffffffffc000000f result=0x0
    TextBoxEx1:S1:msg=0xe (WM_GETTEXTLENGTH) hwnd=0x1007b8 wparam=0x0 lparam=0x0 result=0x0
    TextBoxEx1:E1:msg=0xe (WM_GETTEXTLENGTH) hwnd=0x1007b8 wparam=0x0 lparam=0x0 result=0x0
    TextBoxEx1:S1:msg=0xd (WM_GETTEXT) hwnd=0x1007b8 wparam=0x2 lparam=0x239dd8 result=0x0
    TextBoxEx1:E1:msg=0xd (WM_GETTEXT) hwnd=0x1007b8 wparam=0x2 lparam=0x239dd8 result=0x0
       場所 WindowsApplication1.Form1.TextBoxEx1_Validating(Object sender, CancelEventArgs e) 場所 D:\TEST\WindowsApplication1\WindowsApplication1\Form1.vb:行 13
       場所 System.Windows.Forms.Control.OnValidating(CancelEventArgs e)
       場所 System.Windows.Forms.Control.NotifyValidating()
       場所 System.Windows.Forms.Control.PerformControlValidation(Boolean bulkValidation)
       場所 System.Windows.Forms.ContainerControl.ValidateThroughAncestor(Control ancestorControl, Boolean preventFocusChangeOnError)
       場所 System.Windows.Forms.ContainerControl.EnterValidation(Control enterControl)
       場所 System.Windows.Forms.ContainerControl.UpdateFocusedControl()
       場所 System.Windows.Forms.ContainerControl.AssignActiveControlInternal(Control value)
       場所 System.Windows.Forms.ContainerControl.ActivateControlInternal(Control control, Boolean originator)
       場所 System.Windows.Forms.ContainerControl.ActivateControlInternal(Control control, Boolean originator)
       場所 System.Windows.Forms.ContainerControl.ActivateControlInternal(Control control)
       場所 System.Windows.Forms.Control.WmSetFocus(Message& m)
       場所 System.Windows.Forms.Control.WndProc(Message& m)
       場所 System.Windows.Forms.TextBoxBase.WndProc(Message& m)
       場所 System.Windows.Forms.TextBox.WndProc(Message& m)
       場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       場所 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       場所 System.Windows.Forms.UnsafeNativeMethods.SetFocus(HandleRef hWnd)
       場所 System.Windows.Forms.Control.FocusInternal()
       場所 System.Windows.Forms.TextBox.WndProc(Message& m)
       場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       場所 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       場所 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       場所 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
       場所 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       場所 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       場所 System.Windows.Forms.Application.Run(ApplicationContext context)
       場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
       場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
       場所 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
       場所 WindowsApplication1.My.MyApplication.Main(String[] Args) 場所 17d14f5c-a337-4978-8281-53493378c1071.vb:行 81
       場所 System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
       場所 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       場所 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       場所 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       場所 System.Threading.ThreadHelper.ThreadStart()
    
    TextBoxEx1:S1:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x1007b8 wparam=0x1 lparam=0xffffffffc000000f result=0x0
    TextBoxEx1:E1:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x1007b8 wparam=0x1 lparam=0xffffffffc000000f result=0x0
    TextBoxEx1:S1:msg=0x7 (WM_SETFOCUS) hwnd=0x1007b8 wparam=0x16077e lparam=0x0 result=0x0
    TextBoxEx1:S2:msg=0xd2 hwnd=0x1007b8 wparam=0x0 lparam=0x0 result=0x0
    TextBoxEx1:E2:msg=0xd2 hwnd=0x1007b8 wparam=0x0 lparam=0x0 result=0x0
    TextBoxEx1:S2:msg=0x282 (WM_IME_NOTIFY) hwnd=0x1007b8 wparam=0xa lparam=0x0 result=0x0
    TextBoxEx1:E2:msg=0x282 (WM_IME_NOTIFY) hwnd=0x1007b8 wparam=0xa lparam=0x0 result=0x0
    TextBoxEx1:S2:msg=0x282 (WM_IME_NOTIFY) hwnd=0x1007b8 wparam=0xb lparam=0x0 result=0x0
    TextBoxEx1:E2:msg=0x282 (WM_IME_NOTIFY) hwnd=0x1007b8 wparam=0xb lparam=0x0 result=0x0
    TextBoxEx1:S2:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0x1007b8 wparam=0x10007b8 lparam=0x1007b8 result=0x0
    TextBoxEx1:E2:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0x1007b8 wparam=0x10007b8 lparam=0x1007b8 result=0x0
    TextBoxEx1:E1:msg=0x7 (WM_SETFOCUS) hwnd=0x1007b8 wparam=0x16077e lparam=0x0 result=0x1
    TextBoxEx1:S1:msg=0xf (WM_PAINT) hwnd=0x1007b8 wparam=0x0 lparam=0x0 result=0x0
    -----------------------------------------------------------------------------------------------
    1回目のValidating
    TextBoxEx1:S2:msg=0x14 (WM_ERASEBKGND) hwnd=0x1007b8 wparam=0x1010075 lparam=0x0 result=0x0
    TextBoxEx1:E2:msg=0x14 (WM_ERASEBKGND) hwnd=0x1007b8 wparam=0x1010075 lparam=0x0 result=0x1
    -----------------------------------------------------------------------------------------------
    2回目のValidatingによる違い
    TextBoxEx1:S2:msg=0x14 (WM_ERASEBKGND) hwnd=0x1007b8 wparam=0x600113c2 lparam=0x0 result=0x0
    TextBoxEx1:E2:msg=0x14 (WM_ERASEBKGND) hwnd=0x1007b8 wparam=0x600113c2 lparam=0x0 result=0x1
    TextBoxEx1:E1:msg=0xf (WM_PAINT) hwnd=0x1007b8 wparam=0x0 lparam=0x0 result=0x1
    TextBoxEx1:S1:msg=0x8 (WM_KILLFOCUS) hwnd=0x1007b8 wparam=0x0 lparam=0x0 result=0x0
    TextBoxEx1:S2:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0x1007b8 wparam=0x20007b8 lparam=0x1007b8 result=0x0
    TextBoxEx1:E2:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0x1007b8 wparam=0x20007b8 lparam=0x1007b8 result=0x0
    TextBoxEx1:E1:msg=0x8 (WM_KILLFOCUS) hwnd=0x1007b8 wparam=0x0 lparam=0x0 result=0x1
    TextBoxEx1:S1:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x1007b8 wparam=0x0 lparam=0xffffffffc000000f result=0x0
    TextBoxEx1:S2:msg=0x282 (WM_IME_NOTIFY) hwnd=0x1007b8 wparam=0x1 lparam=0x0 result=0x0
    TextBoxEx1:E2:msg=0x282 (WM_IME_NOTIFY) hwnd=0x1007b8 wparam=0x1 lparam=0x0 result=0x0
    TextBoxEx1:E1:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x1007b8 wparam=0x0 lparam=0xffffffffc000000f result=0x0
    TextBoxEx1:S1:msg=0xf (WM_PAINT) hwnd=0x1007b8 wparam=0x0 lparam=0x0 result=0x0
    -----------------------------------------------------------------------------------------------
    TextBoxEx1:E1:msg=0xf (WM_PAINT) hwnd=0x1007b8 wparam=0x0 lparam=0x0 result=0x1
    *****************************************************************************************************************
記事No.56238 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56250  Re[4]: UserControlとValidatingについて
□投稿者/ todo -(2011/01/06(Thu) 19:22:52)
    UserControlの方もTextBoxExを使ってください。
記事No.56238 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56251  Re[5]: UserControlとValidatingについて
□投稿者/ KK -(2011/01/06(Thu) 19:53:37)
    todo 様
    > UserControlの方もTextBoxExを使ってください。
    お手数をおかけしてすいません。

    userTextBoxEx1:UserControl上のTextBoxExです。
    TextBoxEx1:Form上のTextBoxExになります。

    投稿できませんでしたので、分割しています。

    ****
    userTextBoxEx1:S1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a900cc result=0x0
    userTextBoxEx1:E1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a900cc result=0x12
    userTextBoxEx1:S1:msg=0x20 (WM_SETCURSOR) hwnd=0x60776 wparam=0x60776 lparam=0x2000012 result=0x0
    userTextBoxEx1:E1:msg=0x20 (WM_SETCURSOR) hwnd=0x60776 wparam=0x60776 lparam=0x2000012 result=0x0
    userTextBoxEx1:S1:msg=0xa0 (WM_NCMOUSEMOVE) hwnd=0x60776 wparam=0x12 lparam=0x1a900cc result=0x0
    userTextBoxEx1:E1:msg=0xa0 (WM_NCMOUSEMOVE) hwnd=0x60776 wparam=0x12 lparam=0x1a900cc result=0x0
    userTextBoxEx1:S1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a900ca result=0x0
    userTextBoxEx1:E1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a900ca result=0x1
    userTextBoxEx1:S1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a900ca result=0x0
    userTextBoxEx1:E1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a900ca result=0x1
    userTextBoxEx1:S1:msg=0x20 (WM_SETCURSOR) hwnd=0x60776 wparam=0x60776 lparam=0x2000001 result=0x0
    userTextBoxEx1:E1:msg=0x20 (WM_SETCURSOR) hwnd=0x60776 wparam=0x60776 lparam=0x2000001 result=0x0
    userTextBoxEx1:S1:msg=0xc224 hwnd=0x60776 wparam=0x0 lparam=0x0 result=0x0
    userTextBoxEx1:E1:msg=0xc224 hwnd=0x60776 wparam=0x0 lparam=0x0 result=0x0
    userTextBoxEx1:S1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x60776 wparam=0x0 lparam=0xa0069 result=0x0
    userTextBoxEx1:S2:msg=0x85 (WM_NCPAINT) hwnd=0x60776 wparam=0x1 lparam=0x0 result=0x0
    userTextBoxEx1:E2:msg=0x85 (WM_NCPAINT) hwnd=0x60776 wparam=0x1 lparam=0x0 result=0x1
    userTextBoxEx1:E1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x60776 wparam=0x0 lparam=0xa0069 result=0x1
    userTextBoxEx1:S1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a800c7 result=0x0
    userTextBoxEx1:E1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a800c7 result=0x1
    userTextBoxEx1:S1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a800c7 result=0x0
    userTextBoxEx1:E1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a800c7 result=0x1
    userTextBoxEx1:S1:msg=0x20 (WM_SETCURSOR) hwnd=0x60776 wparam=0x60776 lparam=0x2000001 result=0x0
    userTextBoxEx1:E1:msg=0x20 (WM_SETCURSOR) hwnd=0x60776 wparam=0x60776 lparam=0x2000001 result=0x0
    userTextBoxEx1:S1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x60776 wparam=0x0 lparam=0x90066 result=0x0
    userTextBoxEx1:E1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x60776 wparam=0x0 lparam=0x90066 result=0x1
    userTextBoxEx1:S1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a800c5 result=0x0
    userTextBoxEx1:E1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a800c5 result=0x1
    userTextBoxEx1:S1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a800c5 result=0x0
    userTextBoxEx1:E1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a800c5 result=0x1
    userTextBoxEx1:S1:msg=0x20 (WM_SETCURSOR) hwnd=0x60776 wparam=0x60776 lparam=0x2000001 result=0x0
    userTextBoxEx1:E1:msg=0x20 (WM_SETCURSOR) hwnd=0x60776 wparam=0x60776 lparam=0x2000001 result=0x0
    userTextBoxEx1:S1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x60776 wparam=0x0 lparam=0x90064 result=0x0
    userTextBoxEx1:E1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x60776 wparam=0x0 lparam=0x90064 result=0x1
    userTextBoxEx1:S1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a700c4 result=0x0
    userTextBoxEx1:E1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a700c4 result=0x1
    userTextBoxEx1:S1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a700c4 result=0x0
    userTextBoxEx1:E1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a700c4 result=0x1
    userTextBoxEx1:S1:msg=0x20 (WM_SETCURSOR) hwnd=0x60776 wparam=0x60776 lparam=0x2000001 result=0x0
    userTextBoxEx1:E1:msg=0x20 (WM_SETCURSOR) hwnd=0x60776 wparam=0x60776 lparam=0x2000001 result=0x0
    userTextBoxEx1:S1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x60776 wparam=0x0 lparam=0x80063 result=0x0
    userTextBoxEx1:E1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x60776 wparam=0x0 lparam=0x80063 result=0x1
    userTextBoxEx1:S1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a700c3 result=0x0
    userTextBoxEx1:E1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a700c3 result=0x1
    userTextBoxEx1:S1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a700c3 result=0x0
    userTextBoxEx1:E1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a700c3 result=0x1
    userTextBoxEx1:S1:msg=0x20 (WM_SETCURSOR) hwnd=0x60776 wparam=0x60776 lparam=0x2000001 result=0x0
    userTextBoxEx1:E1:msg=0x20 (WM_SETCURSOR) hwnd=0x60776 wparam=0x60776 lparam=0x2000001 result=0x0
    userTextBoxEx1:S1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x60776 wparam=0x0 lparam=0x80062 result=0x0
    userTextBoxEx1:E1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x60776 wparam=0x0 lparam=0x80062 result=0x1
    userTextBoxEx1:S1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a600c3 result=0x0
    userTextBoxEx1:E1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a600c3 result=0x1
    userTextBoxEx1:S1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a600c2 result=0x0
    userTextBoxEx1:E1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a600c2 result=0x1
    userTextBoxEx1:S1:msg=0x20 (WM_SETCURSOR) hwnd=0x60776 wparam=0x60776 lparam=0x2000001 result=0x0
    userTextBoxEx1:E1:msg=0x20 (WM_SETCURSOR) hwnd=0x60776 wparam=0x60776 lparam=0x2000001 result=0x0
    userTextBoxEx1:S1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x60776 wparam=0x0 lparam=0x70061 result=0x0
    userTextBoxEx1:E1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x60776 wparam=0x0 lparam=0x70061 result=0x1
    userTextBoxEx1:S1:msg=0x2a1 (WM_MOUSEHOVER) hwnd=0x60776 wparam=0x0 lparam=0x70061 result=0x0
    userTextBoxEx1:E1:msg=0x2a1 (WM_MOUSEHOVER) hwnd=0x60776 wparam=0x0 lparam=0x70061 result=0x0
    userTextBoxEx1:S1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a600c2 result=0x0
    userTextBoxEx1:E1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a600c2 result=0x1
    userTextBoxEx1:S1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a600c2 result=0x0
    userTextBoxEx1:E1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a600c2 result=0x1
    userTextBoxEx1:S1:msg=0x21 (WM_MOUSEACTIVATE) hwnd=0x60776 wparam=0x907da lparam=0x2010001 result=0x0
    userTextBoxEx1:E1:msg=0x21 (WM_MOUSEACTIVATE) hwnd=0x60776 wparam=0x907da lparam=0x2010001 result=0x1
    userTextBoxEx1:S1:msg=0x20 (WM_SETCURSOR) hwnd=0x60776 wparam=0x60776 lparam=0x2010001 result=0x0
    userTextBoxEx1:E1:msg=0x20 (WM_SETCURSOR) hwnd=0x60776 wparam=0x60776 lparam=0x2010001 result=0x0
    userTextBoxEx1:S1:msg=0x201 (WM_LBUTTONDOWN) hwnd=0x60776 wparam=0x1 lparam=0x70061 result=0x0
    ****
記事No.56238 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56252  Re[5]: UserControlとValidatingについて
□投稿者/ KK -(2011/01/06(Thu) 19:54:55)
    todo 様

    ***上記 続きです****************************************************************************************************
    TextBoxEx1:S1:msg=0x8 (WM_KILLFOCUS) hwnd=0x507be wparam=0x60776 lparam=0x0 result=0x0
    TextBoxEx1:S2:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0x507be wparam=0x20007be lparam=0x507be result=0x0
    TextBoxEx1:E2:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0x507be wparam=0x20007be lparam=0x507be result=0x0
    TextBoxEx1:E1:msg=0x8 (WM_KILLFOCUS) hwnd=0x507be wparam=0x60776 lparam=0x0 result=0x1
    TextBoxEx1:S1:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x507be wparam=0x0 lparam=0xffffffffc000000f result=0x0
    TextBoxEx1:E1:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x507be wparam=0x0 lparam=0xffffffffc000000f result=0x0
    userTextBoxEx1:S2:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x60776 wparam=0x1 lparam=0xffffffffc000000f result=0x0
    userTextBoxEx1:E2:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x60776 wparam=0x1 lparam=0xffffffffc000000f result=0x0
    userTextBoxEx1:S2:msg=0x7 (WM_SETFOCUS) hwnd=0x60776 wparam=0x507be lparam=0x0 result=0x0
    userTextBoxEx1:S3:msg=0xd2 hwnd=0x60776 wparam=0x0 lparam=0x0 result=0x0
    userTextBoxEx1:E3:msg=0xd2 hwnd=0x60776 wparam=0x0 lparam=0x0 result=0x0
    TextBoxEx1:S1:msg=0xe (WM_GETTEXTLENGTH) hwnd=0x507be wparam=0x0 lparam=0x0 result=0x0
    TextBoxEx1:E1:msg=0xe (WM_GETTEXTLENGTH) hwnd=0x507be wparam=0x0 lparam=0x0 result=0x0
    TextBoxEx1:S1:msg=0xd (WM_GETTEXT) hwnd=0x507be wparam=0x2 lparam=0x230f10 result=0x0
    TextBoxEx1:E1:msg=0xd (WM_GETTEXT) hwnd=0x507be wparam=0x2 lparam=0x230f10 result=0x0
    場所 WindowsApplication1.Form1.TextBoxEx1_Validating(Object sender, CancelEventArgs e)
    '文字数の制限で、投稿できませんでしたので省略しています
    場所 System.Threading.ThreadHelper.ThreadStart()

    userTextBoxEx1:S3:msg=0x8 (WM_KILLFOCUS) hwnd=0x60776 wparam=0x507be lparam=0x0 result=0x0
    userTextBoxEx1:S4:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0x60776 wparam=0x2000776 lparam=0x60776 result=0x0
    userTextBoxEx1:E4:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0x60776 wparam=0x2000776 lparam=0x60776 result=0x0
    userTextBoxEx1:E3:msg=0x8 (WM_KILLFOCUS) hwnd=0x60776 wparam=0x507be lparam=0x0 result=0x1
    userTextBoxEx1:S3:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x60776 wparam=0x0 lparam=0xffffffffc000000f result=0x0
    userTextBoxEx1:E3:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x60776 wparam=0x0 lparam=0xffffffffc000000f result=0x0
    TextBoxEx1:S1:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x507be wparam=0x1 lparam=0xffffffffc000000f result=0x0
    TextBoxEx1:E1:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x507be wparam=0x1 lparam=0xffffffffc000000f result=0x0
    TextBoxEx1:S1:msg=0x7 (WM_SETFOCUS) hwnd=0x507be wparam=0x60776 lparam=0x0 result=0x0
    TextBoxEx1:S2:msg=0xd2 hwnd=0x507be wparam=0x0 lparam=0x0 result=0x0
    TextBoxEx1:E2:msg=0xd2 hwnd=0x507be wparam=0x0 lparam=0x0 result=0x0
    TextBoxEx1:S2:msg=0x282 (WM_IME_NOTIFY) hwnd=0x507be wparam=0xa lparam=0x0 result=0x0
    TextBoxEx1:E2:msg=0x282 (WM_IME_NOTIFY) hwnd=0x507be wparam=0xa lparam=0x0 result=0x0
    TextBoxEx1:S2:msg=0x282 (WM_IME_NOTIFY) hwnd=0x507be wparam=0xb lparam=0x0 result=0x0
    TextBoxEx1:E2:msg=0x282 (WM_IME_NOTIFY) hwnd=0x507be wparam=0xb lparam=0x0 result=0x0
    TextBoxEx1:S2:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0x507be wparam=0x10007be lparam=0x507be result=0x0
    TextBoxEx1:E2:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0x507be wparam=0x10007be lparam=0x507be result=0x0
    TextBoxEx1:E1:msg=0x7 (WM_SETFOCUS) hwnd=0x507be wparam=0x60776 lparam=0x0 result=0x1
    userTextBoxEx1:E2:msg=0x7 (WM_SETFOCUS) hwnd=0x60776 wparam=0x507be lparam=0x0 result=0x0
    TextBoxEx1:S1:msg=0x8 (WM_KILLFOCUS) hwnd=0x507be wparam=0x60776 lparam=0x0 result=0x0
    TextBoxEx1:S2:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0x507be wparam=0x20007be lparam=0x507be result=0x0
    TextBoxEx1:E2:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0x507be wparam=0x20007be lparam=0x507be result=0x0
    TextBoxEx1:E1:msg=0x8 (WM_KILLFOCUS) hwnd=0x507be wparam=0x60776 lparam=0x0 result=0x1
    TextBoxEx1:S1:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x507be wparam=0x0 lparam=0xffffffffc000000f result=0x0
    TextBoxEx1:E1:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x507be wparam=0x0 lparam=0xffffffffc000000f result=0x0
    userTextBoxEx1:S2:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x60776 wparam=0x1 lparam=0xffffffffc000000f result=0x0
    userTextBoxEx1:E2:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x60776 wparam=0x1 lparam=0xffffffffc000000f result=0x0
    userTextBoxEx1:S2:msg=0x7 (WM_SETFOCUS) hwnd=0x60776 wparam=0x507be lparam=0x0 result=0x0
    userTextBoxEx1:S3:msg=0xd2 hwnd=0x60776 wparam=0x0 lparam=0x0 result=0x0
    userTextBoxEx1:E3:msg=0xd2 hwnd=0x60776 wparam=0x0 lparam=0x0 result=0x0
    TextBoxEx1:S1:msg=0xe (WM_GETTEXTLENGTH) hwnd=0x507be wparam=0x0 lparam=0x0 result=0x0
    TextBoxEx1:E1:msg=0xe (WM_GETTEXTLENGTH) hwnd=0x507be wparam=0x0 lparam=0x0 result=0x0
    TextBoxEx1:S1:msg=0xd (WM_GETTEXT) hwnd=0x507be wparam=0x2 lparam=0x230f10 result=0x0
    TextBoxEx1:E1:msg=0xd (WM_GETTEXT) hwnd=0x507be wparam=0x2 lparam=0x230f10 result=0x0
    場所 WindowsApplication1.Form1.TextBoxEx1_Validating(Object sender, CancelEventArgs e)
    '文字数の制限で、投稿できませんでしたので省略しています
    場所 System.Threading.ThreadHelper.ThreadStart()

    userTextBoxEx1:S3:msg=0x8 (WM_KILLFOCUS) hwnd=0x60776 wparam=0x507be lparam=0x0 result=0x0
    userTextBoxEx1:S4:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0x60776 wparam=0x2000776 lparam=0x60776 result=0x0
    userTextBoxEx1:E4:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0x60776 wparam=0x2000776 lparam=0x60776 result=0x0
    userTextBoxEx1:E3:msg=0x8 (WM_KILLFOCUS) hwnd=0x60776 wparam=0x507be lparam=0x0 result=0x1
    userTextBoxEx1:S3:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x60776 wparam=0x0 lparam=0xffffffffc000000f result=0x0
    userTextBoxEx1:E3:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x60776 wparam=0x0 lparam=0xffffffffc000000f result=0x0
    TextBoxEx1:S1:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x507be wparam=0x1 lparam=0xffffffffc000000f result=0x0
    TextBoxEx1:E1:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x507be wparam=0x1 lparam=0xffffffffc000000f result=0x0
    TextBoxEx1:S1:msg=0x7 (WM_SETFOCUS) hwnd=0x507be wparam=0x60776 lparam=0x0 result=0x0
    TextBoxEx1:S2:msg=0xd2 hwnd=0x507be wparam=0x0 lparam=0x0 result=0x0
    TextBoxEx1:E2:msg=0xd2 hwnd=0x507be wparam=0x0 lparam=0x0 result=0x0
    TextBoxEx1:S2:msg=0x282 (WM_IME_NOTIFY) hwnd=0x507be wparam=0xa lparam=0x0 result=0x0
    TextBoxEx1:E2:msg=0x282 (WM_IME_NOTIFY) hwnd=0x507be wparam=0xa lparam=0x0 result=0x0
    TextBoxEx1:S2:msg=0x282 (WM_IME_NOTIFY) hwnd=0x507be wparam=0xb lparam=0x0 result=0x0
    TextBoxEx1:E2:msg=0x282 (WM_IME_NOTIFY) hwnd=0x507be wparam=0xb lparam=0x0 result=0x0
    TextBoxEx1:S2:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0x507be wparam=0x10007be lparam=0x507be result=0x0
    TextBoxEx1:E2:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0x507be wparam=0x10007be lparam=0x507be result=0x0
    TextBoxEx1:E1:msg=0x7 (WM_SETFOCUS) hwnd=0x507be wparam=0x60776 lparam=0x0 result=0x1
    userTextBoxEx1:E2:msg=0x7 (WM_SETFOCUS) hwnd=0x60776 wparam=0x507be lparam=0x0 result=0x0
    userTextBoxEx1:E1:msg=0x201 (WM_LBUTTONDOWN) hwnd=0x60776 wparam=0x1 lparam=0x70061 result=0x1
    userTextBoxEx1:S1:msg=0xf (WM_PAINT) hwnd=0x60776 wparam=0x0 lparam=0x0 result=0x0
    userTextBoxEx1:E1:msg=0xf (WM_PAINT) hwnd=0x60776 wparam=0x0 lparam=0x0 result=0x1
    TextBoxEx1:S1:msg=0xf (WM_PAINT) hwnd=0x507be wparam=0x0 lparam=0x0 result=0x0
    TextBoxEx1:S2:msg=0x14 (WM_ERASEBKGND) hwnd=0x507be wparam=0x4012245 lparam=0x0 result=0x0
    TextBoxEx1:E2:msg=0x14 (WM_ERASEBKGND) hwnd=0x507be wparam=0x4012245 lparam=0x0 result=0x1
    TextBoxEx1:E1:msg=0xf (WM_PAINT) hwnd=0x507be wparam=0x0 lparam=0x0 result=0x1
    userTextBoxEx1:S1:msg=0x202 (WM_LBUTTONUP) hwnd=0x60776 wparam=0x0 lparam=0x70061 result=0x0
    userTextBoxEx1:S2:msg=0x215 (WM_CAPTURECHANGED) hwnd=0x60776 wparam=0x0 lparam=0x0 result=0x0
    userTextBoxEx1:E2:msg=0x215 (WM_CAPTURECHANGED) hwnd=0x60776 wparam=0x0 lparam=0x0 result=0x1
    userTextBoxEx1:E1:msg=0x202 (WM_LBUTTONUP) hwnd=0x60776 wparam=0x0 lparam=0x70061 result=0x1
    userTextBoxEx1:S1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a600c2 result=0x0
    userTextBoxEx1:E1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a600c2 result=0x1
    userTextBoxEx1:S1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a600c2 result=0x0
    userTextBoxEx1:E1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a600c2 result=0x1
    userTextBoxEx1:S1:msg=0x20 (WM_SETCURSOR) hwnd=0x60776 wparam=0x60776 lparam=0x2000001 result=0x0
    userTextBoxEx1:E1:msg=0x20 (WM_SETCURSOR) hwnd=0x60776 wparam=0x60776 lparam=0x2000001 result=0x0
    userTextBoxEx1:S1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x60776 wparam=0x0 lparam=0x70061 result=0x0
    userTextBoxEx1:E1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x60776 wparam=0x0 lparam=0x70061 result=0x1
    userTextBoxEx1:S1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a300c3 result=0x0
    userTextBoxEx1:E1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x1a300c3 result=0x1
    userTextBoxEx1:S1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x19f00c8 result=0x0
    userTextBoxEx1:E1:msg=0x84 (WM_NCHITTEST) hwnd=0x60776 wparam=0x0 lparam=0x19f00c8 result=0x1
    userTextBoxEx1:S1:msg=0x20 (WM_SETCURSOR) hwnd=0x60776 wparam=0x60776 lparam=0x2000001 result=0x0
    userTextBoxEx1:E1:msg=0x20 (WM_SETCURSOR) hwnd=0x60776 wparam=0x60776 lparam=0x2000001 result=0x0
    userTextBoxEx1:S1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x60776 wparam=0x0 lparam=0x67 result=0x0
    userTextBoxEx1:E1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x60776 wparam=0x0 lparam=0x67 result=0x1
    userTextBoxEx1:S1:msg=0x2a3 (WM_MOUSELEAVE) hwnd=0x60776 wparam=0x0 lparam=0x0 result=0x0
    ***********************************************************************************************************************
記事No.56238 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56254  Re[6]: UserControlとValidatingについて
□投稿者/ todo -(2011/01/06(Thu) 20:57:33)
    2011/01/06(Thu) 21:05:02 編集(投稿者)

    1回目の TextBoxEx1_Validating の後、TextBoxEx1 に WM_SETFOCUS しているのに、userTextBoxEx1 に WM_SETFOCUS が来るのが謎ですね。

    もっと調べるのであれば、Formの WndProc も記録するとか。
    あとは、Spy++ というツールもあります。
記事No.56238 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56255  Re[7]: UserControlとValidatingについて
□投稿者/ KK -(2011/01/06(Thu) 21:26:06)
    todo 様
    
    > 1回目の TextBoxEx1_Validating の後、TextBoxEx1 に WM_SETFOCUS しているのに、userTextBoxEx1 に WM_SETFOCUS が来るのが謎ですね。
      UserControl上に同一のTextBoxを作成し、Validatingイベントを確認すると1回だけしか発生しませんでした。
      FormとUserControlの変化が、何か悪さをしているのでしょうか。うーん、  本当に謎ですね。
    
    > もっと調べるのであれば、Formの WndProc も記録するとか。
      FormとかUserControl等を、先ほど教えていただいた方法で記録をとってみます。
    
    > あとは、Spy++ というツールもあります。
      使い方等、一度調べてみます。
      
    いろいろアドバイス頂き ありがとうございました。
記事No.56238 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56261  Re[8]: UserControlとValidatingについて
□投稿者/ shu -(2011/01/07(Fri) 07:52:55)
    No56255 (KK さん) に返信

    今回のコントロールの配置ってそんなに特殊ではないと
    思うので、起こっていることを事実として受け止めて
    Validatingが2回走っても問題ないようコーディングすれば
    いいんじゃないかな?
    これだけの為にTextBoxを拡張するのも大変ではないですか?
記事No.56238 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56265  Re[9]: UserControlとValidatingについて
□投稿者/ KK -(2011/01/07(Fri) 09:31:01)
    shu 様

    > 今回のコントロールの配置ってそんなに特殊ではないと思うので、
    > 起こっていることを事実として受け止めて
    > Validatingが2回走っても問題ないようコーディングすれば
    > いいんじゃないかな?
    > これだけの為にTextBoxを拡張するのも大変ではないですか?
    納期の問題もありますので、こちらの方法も検討していきます。

    いろいろアドバイス頂き、本当にありがとうございました。

    ※余談ですが、Validatingでエラーの際にMsgBoxを表示するとValidatingが1回しか発生しないみたいです。
    フォーカスが、MsgBoxに移ってしまうからなんでしょうか・・・。
    ただ、Validating中にMsgBoxはタブーですので使えないんですが・・。

記事No.56238 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56278  Re[8]: UserControlとValidatingについて
□投稿者/ todo -(2011/01/07(Fri) 16:29:25)
    No56255 (KK さん) に返信
    >>もっと調べるのであれば、Formの WndProc も記録するとか。
    > FormとかUserControl等を、先ほど教えていただいた方法で記録をとってみます。

    ログが読みづらかったので改良しました。

    Public Class TextBoxEx
    Inherits TextBox
    Protected Overrides Sub WndProc(ByRef m As Message)
    Util.CallWndProc(Me, MyBase.WndProc, m)
    End Sub
    End Class

    Public Class Util
    Public Delegate Sub WndProcHandler(ByRef m As Message)

    Public Shared Sub CallWndProc(c As Control, wndProc As WndProcHandler, ByRef m As Message)
    Debug.WriteLine(String.Format("{0}:{1}", c.Name, m))
    Debug.Indent()
    wndProc(m)
    Debug.Unindent()
    End Sub
    End Class
記事No.56238 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56281  Re[9]: UserControlとValidatingについて
□投稿者/ KK -(2011/01/07(Fri) 19:04:16)
    todo 様
    ありがとうございます。
    
    > Public Class TextBoxEx
    > Inherits TextBox
    > Protected Overrides Sub WndProc(ByRef m As Message)
    > Util.CallWndProc(Me, MyBase.WndProc, m)
    > End Sub
     エラーが表示されましたので、以下のように変更してみました。
     ※デリゲートについて、勉強不足ですいません。
     
        Protected Overrides Sub WndProc(ByRef m As Message)
            Util.CallWndProc(Me, AddressOf MyBase.WndProc, m)
        End Sub
    
    ******************************************************************************************************************
    userTextBoxEx1:msg=0x84 (WM_NCHITTEST) hwnd=0x280dee wparam=0x0 lparam=0x18c0058 result=0x0
    userTextBoxEx1:msg=0x84 (WM_NCHITTEST) hwnd=0x280dee wparam=0x0 lparam=0x18c0058 result=0x0
    userTextBoxEx1:msg=0x84 (WM_NCHITTEST) hwnd=0x280dee wparam=0x0 lparam=0x18c0058 result=0x0
    userTextBoxEx1:msg=0x20 (WM_SETCURSOR) hwnd=0x280dee wparam=0x280dee lparam=0x2000012 result=0x0
    userTextBoxEx1:msg=0xa0 (WM_NCMOUSEMOVE) hwnd=0x280dee wparam=0x12 lparam=0x18c0058 result=0x0
    userTextBoxEx1:msg=0x84 (WM_NCHITTEST) hwnd=0x280dee wparam=0x0 lparam=0x1890059 result=0x0
    userTextBoxEx1:msg=0x84 (WM_NCHITTEST) hwnd=0x280dee wparam=0x0 lparam=0x1890059 result=0x0
    userTextBoxEx1:msg=0x20 (WM_SETCURSOR) hwnd=0x280dee wparam=0x280dee lparam=0x2000001 result=0x0
    userTextBoxEx1:msg=0xc184 hwnd=0x280dee wparam=0x0 lparam=0x0 result=0x0
    userTextBoxEx1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x280dee wparam=0x0 lparam=0xd0023 result=0x0
        userTextBoxEx1:msg=0x85 (WM_NCPAINT) hwnd=0x280dee wparam=0x1 lparam=0x0 result=0x0
    userTextBoxEx1:msg=0x84 (WM_NCHITTEST) hwnd=0x280dee wparam=0x0 lparam=0x1870059 result=0x0
    userTextBoxEx1:msg=0x84 (WM_NCHITTEST) hwnd=0x280dee wparam=0x0 lparam=0x1870059 result=0x0
    userTextBoxEx1:msg=0x20 (WM_SETCURSOR) hwnd=0x280dee wparam=0x280dee lparam=0x2000001 result=0x0
    userTextBoxEx1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x280dee wparam=0x0 lparam=0xb0023 result=0x0
    userTextBoxEx1:msg=0x84 (WM_NCHITTEST) hwnd=0x280dee wparam=0x0 lparam=0x1860059 result=0x0
    userTextBoxEx1:msg=0x84 (WM_NCHITTEST) hwnd=0x280dee wparam=0x0 lparam=0x1860059 result=0x0
    userTextBoxEx1:msg=0x20 (WM_SETCURSOR) hwnd=0x280dee wparam=0x280dee lparam=0x2000001 result=0x0
    userTextBoxEx1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x280dee wparam=0x0 lparam=0xa0023 result=0x0
    userTextBoxEx1:msg=0x84 (WM_NCHITTEST) hwnd=0x280dee wparam=0x0 lparam=0x1850059 result=0x0
    userTextBoxEx1:msg=0x84 (WM_NCHITTEST) hwnd=0x280dee wparam=0x0 lparam=0x1850059 result=0x0
    userTextBoxEx1:msg=0x20 (WM_SETCURSOR) hwnd=0x280dee wparam=0x280dee lparam=0x2000001 result=0x0
    userTextBoxEx1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x280dee wparam=0x0 lparam=0x90023 result=0x0
    userTextBoxEx1:msg=0x2a1 (WM_MOUSEHOVER) hwnd=0x280dee wparam=0x0 lparam=0x90023 result=0x0
    userTextBoxEx1:msg=0x84 (WM_NCHITTEST) hwnd=0x280dee wparam=0x0 lparam=0x1850059 result=0x0
    userTextBoxEx1:msg=0x84 (WM_NCHITTEST) hwnd=0x280dee wparam=0x0 lparam=0x1850059 result=0x0
    userTextBoxEx1:msg=0x21 (WM_MOUSEACTIVATE) hwnd=0x280dee wparam=0x60e3c lparam=0x2010001 result=0x0
    userTextBoxEx1:msg=0x20 (WM_SETCURSOR) hwnd=0x280dee wparam=0x280dee lparam=0x2010001 result=0x0
    userTextBoxEx1:msg=0x201 (WM_LBUTTONDOWN) hwnd=0x280dee wparam=0x1 lparam=0x90023 result=0x0
        TextBoxEx1:msg=0x8 (WM_KILLFOCUS) hwnd=0xd0d8a wparam=0x280dee lparam=0x0 result=0x0
            TextBoxEx1:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0xd0d8a wparam=0x2000d8a lparam=0xd0d8a result=0x0
        TextBoxEx1:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0xd0d8a wparam=0x0 lparam=0xffffffffc000000f result=0x0
        userTextBoxEx1:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x280dee wparam=0x1 lparam=0xffffffffc000000f result=0x0
        userTextBoxEx1:msg=0x7 (WM_SETFOCUS) hwnd=0x280dee wparam=0xd0d8a lparam=0x0 result=0x0
            userTextBoxEx1:msg=0xd2 hwnd=0x280dee wparam=0x0 lparam=0x0 result=0x0
            TextBoxEx1:msg=0xe (WM_GETTEXTLENGTH) hwnd=0xd0d8a wparam=0x0 lparam=0x0 result=0x0
            TextBoxEx1:msg=0xd (WM_GETTEXT) hwnd=0xd0d8a wparam=0x2 lparam=0x224828 result=0x0
            場所 WindowsApplication1.Form1.TextBoxEx1_Validating(Object sender, CancelEventArgs e) 場所 D:\TEST\WindowsApplication1\WindowsApplication1\Form1.vb:行 15
     	  ↑
              省略
              ↓
            場所 System.Threading.ThreadHelper.ThreadStart()
    
            userTextBoxEx1:msg=0x8 (WM_KILLFOCUS) hwnd=0x280dee wparam=0xd0d8a lparam=0x0 result=0x0
                userTextBoxEx1:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0x280dee wparam=0x2000dee lparam=0x280dee result=0x0
            userTextBoxEx1:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x280dee wparam=0x0 lparam=0xffffffffc000000f result=0x0
            TextBoxEx1:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0xd0d8a wparam=0x1 lparam=0xffffffffc000000f result=0x0
            TextBoxEx1:msg=0x7 (WM_SETFOCUS) hwnd=0xd0d8a wparam=0x280dee lparam=0x0 result=0x0
                TextBoxEx1:msg=0xd2 hwnd=0xd0d8a wparam=0x0 lparam=0x0 result=0x0
                TextBoxEx1:msg=0x282 (WM_IME_NOTIFY) hwnd=0xd0d8a wparam=0xa lparam=0x0 result=0x0
                TextBoxEx1:msg=0x282 (WM_IME_NOTIFY) hwnd=0xd0d8a wparam=0xb lparam=0x0 result=0x0
                TextBoxEx1:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0xd0d8a wparam=0x1000d8a lparam=0xd0d8a result=0x0
        TextBoxEx1:msg=0x8 (WM_KILLFOCUS) hwnd=0xd0d8a wparam=0x280dee lparam=0x0 result=0x0
            TextBoxEx1:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0xd0d8a wparam=0x2000d8a lparam=0xd0d8a result=0x0
        TextBoxEx1:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0xd0d8a wparam=0x0 lparam=0xffffffffc000000f result=0x0
        userTextBoxEx1:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x280dee wparam=0x1 lparam=0xffffffffc000000f result=0x0
        userTextBoxEx1:msg=0x7 (WM_SETFOCUS) hwnd=0x280dee wparam=0xd0d8a lparam=0x0 result=0x0
            userTextBoxEx1:msg=0xd2 hwnd=0x280dee wparam=0x0 lparam=0x0 result=0x0
            TextBoxEx1:msg=0xe (WM_GETTEXTLENGTH) hwnd=0xd0d8a wparam=0x0 lparam=0x0 result=0x0
            TextBoxEx1:msg=0xd (WM_GETTEXT) hwnd=0xd0d8a wparam=0x2 lparam=0x224828 result=0x0
              場所 WindowsApplication1.Form1.TextBoxEx1_Validating(Object sender, CancelEventArgs e) 場所 D:\TEST\WindowsApplication1\WindowsApplication1\Form1.vb:行 15
    	  ↑
              省略
              ↓
              場所 System.Threading.ThreadHelper.ThreadStart()
    
            userTextBoxEx1:msg=0x8 (WM_KILLFOCUS) hwnd=0x280dee wparam=0xd0d8a lparam=0x0 result=0x0
                userTextBoxEx1:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0x280dee wparam=0x2000dee lparam=0x280dee result=0x0
            userTextBoxEx1:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0x280dee wparam=0x0 lparam=0xffffffffc000000f result=0x0
            TextBoxEx1:msg=0x281 (WM_IME_SETCONTEXT) hwnd=0xd0d8a wparam=0x1 lparam=0xffffffffc000000f result=0x0
            TextBoxEx1:msg=0x7 (WM_SETFOCUS) hwnd=0xd0d8a wparam=0x280dee lparam=0x0 result=0x0
                TextBoxEx1:msg=0xd2 hwnd=0xd0d8a wparam=0x0 lparam=0x0 result=0x0
                TextBoxEx1:msg=0x282 (WM_IME_NOTIFY) hwnd=0xd0d8a wparam=0xa lparam=0x0 result=0x0
                TextBoxEx1:msg=0x282 (WM_IME_NOTIFY) hwnd=0xd0d8a wparam=0xb lparam=0x0 result=0x0
                TextBoxEx1:msg=0x2111 (WM_REFLECT + WM_COMMAND) hwnd=0xd0d8a wparam=0x1000d8a lparam=0xd0d8a result=0x0
    userTextBoxEx1:msg=0xf (WM_PAINT) hwnd=0x280dee wparam=0x0 lparam=0x0 result=0x0
    TextBoxEx1:msg=0xf (WM_PAINT) hwnd=0xd0d8a wparam=0x0 lparam=0x0 result=0x0
        TextBoxEx1:msg=0x14 (WM_ERASEBKGND) hwnd=0xd0d8a wparam=0xffffffffc001086a lparam=0x0 result=0x0
    userTextBoxEx1:msg=0x202 (WM_LBUTTONUP) hwnd=0x280dee wparam=0x0 lparam=0x90023 result=0x0
        userTextBoxEx1:msg=0x215 (WM_CAPTURECHANGED) hwnd=0x280dee wparam=0x0 lparam=0x0 result=0x0
    userTextBoxEx1:msg=0x84 (WM_NCHITTEST) hwnd=0x280dee wparam=0x0 lparam=0x1850059 result=0x0
    userTextBoxEx1:msg=0x84 (WM_NCHITTEST) hwnd=0x280dee wparam=0x0 lparam=0x1850059 result=0x0
    userTextBoxEx1:msg=0x20 (WM_SETCURSOR) hwnd=0x280dee wparam=0x280dee lparam=0x2000001 result=0x0
    userTextBoxEx1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x280dee wparam=0x0 lparam=0x90023 result=0x0
    userTextBoxEx1:msg=0x84 (WM_NCHITTEST) hwnd=0x280dee wparam=0x0 lparam=0x185005a result=0x0
    userTextBoxEx1:msg=0x84 (WM_NCHITTEST) hwnd=0x280dee wparam=0x0 lparam=0x185005a result=0x0
    userTextBoxEx1:msg=0x20 (WM_SETCURSOR) hwnd=0x280dee wparam=0x280dee lparam=0x2000001 result=0x0
    userTextBoxEx1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x280dee wparam=0x0 lparam=0x90024 result=0x0
    userTextBoxEx1:msg=0x84 (WM_NCHITTEST) hwnd=0x280dee wparam=0x0 lparam=0x185005d result=0x0
    userTextBoxEx1:msg=0x84 (WM_NCHITTEST) hwnd=0x280dee wparam=0x0 lparam=0x185005d result=0x0
    userTextBoxEx1:msg=0x20 (WM_SETCURSOR) hwnd=0x280dee wparam=0x280dee lparam=0x2000001 result=0x0
    userTextBoxEx1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x280dee wparam=0x0 lparam=0x90027 result=0x0
    userTextBoxEx1:msg=0x84 (WM_NCHITTEST) hwnd=0x280dee wparam=0x0 lparam=0x1890067 result=0x0
    userTextBoxEx1:msg=0x84 (WM_NCHITTEST) hwnd=0x280dee wparam=0x0 lparam=0x1890067 result=0x0
    userTextBoxEx1:msg=0x20 (WM_SETCURSOR) hwnd=0x280dee wparam=0x280dee lparam=0x2000001 result=0x0
    userTextBoxEx1:msg=0x200 (WM_MOUSEMOVE) hwnd=0x280dee wparam=0x0 lparam=0xd0031 result=0x0
    userTextBoxEx1:msg=0x2a3 (WM_MOUSELEAVE) hwnd=0x280dee wparam=0x0 lparam=0x0 result=0x0
        userTextBoxEx1:msg=0x85 (WM_NCPAINT) hwnd=0x280dee wparam=0x1 lparam=0x0 result=0x0 
    ******************************************************************************************************************
    
    shu様にアドバイス頂いた情報をもとに、
    Validatingイベントで、Me.FindForm.ActiveControlのFocusedをみてみたところ、
    UserControl Me.FindForm.ActiveControlのFocusedがTrueの場合は、1回のみ発生。
    Falseの場合に2回発生していました。
    (※Falseの時も初回のみ1回で、以降は2回でした)
    
記事No.56238 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56282  Re[10]: UserControlとValidatingについて
□投稿者/ KK -(2011/01/07(Fri) 19:17:02)
    先ほどの補足です。

    > Validatingイベントで、Me.FindForm.ActiveControlのFocusedをみてみたところ、
    > UserControl Me.FindForm.ActiveControlのFocusedがTrueの場合は、1回のみ発生。
    > Falseの場合に2回発生していました。
    > (※Falseの時も初回のみ1回で、以降は2回でした)

    > UserControl Me.FindForm.ActiveControlのFocusedがTrueの場合
    A:UserControlのTextBox
    B:TextBoxB
    C:UserControl
    のCをクリックした場合

    > UserControl Me.FindForm.ActiveControlのFocusedがFalseの場合
    A:UserControlのTextBox
    をクリックした場合でした。


    Validatingイベント内で、
    Me.FindForm.ActiveControl.Focused =true の場合は、通常通りチェック()。
    Falseの場合に、1回目のチェック時にフラグを立てて
    2回目以降チェックしないようにすれば回避できそうでしょうか・・。

    ただ、自分の知識の中では、1回目のチェックで立てたフラグを戻すタイミングが
    思いつかないのでもう少し検討しています。


記事No.56238 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56286  Re[11]: UserControlとValidatingについて
□投稿者/ todo -(2011/01/07(Fri) 21:28:31)
    2011/01/07(Fri) 21:38:31 編集(投稿者)

    --ログの要約---
    userTextBoxEx1:msg=0x201 (WM_LBUTTONDOWN) hwnd=0x280dee wparam=0x1 lparam=0x90023 result=0x0
    TextBoxEx1:msg=0x8 (WM_KILLFOCUS) hwnd=0xd0d8a wparam=0x280dee lparam=0x0 result=0x0
    userTextBoxEx1:msg=0x7 (WM_SETFOCUS) hwnd=0x280dee wparam=0xd0d8a lparam=0x0 result=0x0
    場所 WindowsApplication1.Form1.TextBoxEx1_Validating(Object sender, CancelEventArgs e) 場所 D:\TEST\WindowsApplication1
    TextBoxEx1:msg=0x7 (WM_SETFOCUS) hwnd=0xd0d8a wparam=0x280dee lparam=0x0 result=0x0
    TextBoxEx1:msg=0x8 (WM_KILLFOCUS) hwnd=0xd0d8a wparam=0x280dee lparam=0x0 result=0x0 ※ここが問題
    userTextBoxEx1:msg=0x7 (WM_SETFOCUS) hwnd=0x280dee wparam=0xd0d8a lparam=0x0 result=0x0
    場所 WindowsApplication1.Form1.TextBoxEx1_Validating(Object sender, CancelEventArgs e) 場所 D:\TEST\WindowsApplication1
    userTextBoxEx1:msg=0x8 (WM_KILLFOCUS) hwnd=0x280dee wparam=0xd0d8a lparam=0x0 result=0x0
    TextBoxEx1:msg=0x7 (WM_SETFOCUS) hwnd=0xd0d8a wparam=0x280dee lparam=0x0 result=0x0
    userTextBoxEx1:msg=0x202 (WM_LBUTTONUP) hwnd=0x280dee wparam=0x0 lparam=0x90023 result=0x0
    ------
    Validating後、TextBoxEx1に WM_KILLFOCUS が来るのが変です。


    WM_LBUTTONDOWNとWM_LBUTTONUPの間で、OnValidatingがキャセンルされたら二回目のOnValidatingが来てもValidatingイベントを
    呼ばないようにしてみました。

    VBは得意でないので、C#

    public class TextBoxEx : TextBox
    {
    const int WM_LBUTTONDOWN = 0x0201;
    const int WM_LBUTTONUP= 0x0202;
    static bool IsMouseDown = false;
    static bool canceled = false;

    protected override void WndProc(ref Message m)
    {
    if (m.Msg == WM_LBUTTONDOWN) {
    IsMouseDown = true;
    canceled = false;
    }

    base.WndProc(ref m);

    if (m.Msg == WM_LBUTTONUP) {
    IsMouseDown = false;
    }
    }

    protected override void OnValidating(System.ComponentModel.CancelEventArgs e)
    {
    if (IsMouseDown && canceled) {
    e.Cancel = true;
    } else {
    base.OnValidating(e);
    canceled = e.Cancel;
    }
    }
    }
記事No.56238 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56289  Re[12]: UserControlとValidatingについて
□投稿者/ KK -(2011/01/07(Fri) 22:34:57)
    todo 様
    > VBは得意でないので、C#
     違った言語の中で、サンプルまで
     本当にありがとうございます。
     自分なりに、VBに変更してみました。
    
    ******************************************************************
    Module Module1
        Public IsMouseDown As Boolean = False
        Public Canceled As Boolean = False
    End Module
    
    Public Class TextBoxEx
        Inherits TextBox
    
        Private Const WM_LBUTTONDOWN As Integer = &H201
        Private Const WM_LBUTTONUP As Integer = &H202
    
        Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
    
            If m.Msg = WM_LBUTTONDOWN Then
                IsMouseDown = True
                canceled = False
            End If
    
            MyBase.WndProc(m)
    
            If m.Msg = WM_LBUTTONUP Then
                IsMouseDown = False
            End If
    
        End Sub
    
        Protected Overrides Sub OnValidating(ByVal e As System.ComponentModel.CancelEventArgs)
    
            If IsMouseDown And canceled Then
                e.Cancel = True
            Else
                MyBase.OnValidating(e)
                canceled = e.Cancel
            End If
    
        End Sub
    End Class
    ******************************************************************
    
    >	static bool IsMouseDown = false;
    >	static bool canceled = false;
    userTextBoxEx1とTextBoxEx1で、共通のフラグかと思い、
    大雑把でありますが、Module変数にしてみました。
    ※あまり行わない方がいいと思いますが、
      別の方法が思いつかなかったもので・・。
    
    教えていただいたサンプルで、Validatingイベントの発生を1回にできました。
    本当にありがとうございます。
    
    再度、自分なりにいろいろチェックしてみます。
    
    
    >todo様
    違った言語の自分に、
    チェックの仕方等、ご親切に教えていただき
    誠にありがとうございます。
    
    自分で、理解できていない関数等を調べて
    自分なりに再度理解していきます。
    
    >shu 様
    自分のために、
    貴重な時間を割いて
    教えていただき 本当にありがとうございました。
    
    
    ※皆さんに教えていただいたことを
    もう一度自分なりに整理し、そのあとで解決済みをチェックさせていただきたいと思います。
    
    もし、自分のサンプルでお気づきの点等ございましたら
    また教えていただければ幸いです。
    
記事No.56238 のレス /過去ログ94より / 関連記事表示
削除チェック/

■56293  Re[13]: UserControlとValidatingについて
□投稿者/ よねKEN -(2011/01/08(Sat) 00:36:36)
    2011/01/08(Sat) 00:38:34 編集(投稿者)

    継承元がUserControlでないといけない理由が特になければ、継承元をPanelにしてはどうでしょうか。
    UserControlはContainerControlを継承しており、このContainerControlが独自のフォーカス制御を
    やっているため、件のような現象が起きます。

    ●UserControlの継承階層
    System.Object
    System.MarshalByRefObject
    System.ComponentModel.Component
    System.Windows.Forms.Control
    System.Windows.Forms.ScrollableControl
    System.Windows.Forms.ContainerControl
    System.Windows.Forms.UserControl

    ● UserControlから順に派生元クラスに変更して実験してみる
    継承元がUserControlだと現象が発生する

    継承元がContainerControlだと現象が発生する

    継承元がScrollableControlだと現象が発生しない★

    --
    ちなみにこのご提案はGoogleで「UserControl フォーカス」で
    検索して見つけた情報を元にして追加検証したものです。
    #っていうか、魔界の仮面弁士さんの回答まるぱくり(汗)

    ●参考にした情報
    ↓同じ現象と思われる質問が別掲示板で過去にあった。でも未解決
    ユーザコントールのNETのバグ? - Insider .NET会議室
    http://ap.atmarkit.co.jp/bbs/core/fdotnet/17010

    ↓カスタムコントロールをアクティブにさせないようにするには?
    http://hpcgi1.nifty.com/MADIA/vbnet/wwwlng.cgi?print+200711/07110011.txt
記事No.56238 のレス /過去ログ94より / 関連記事表示
削除チェック/

次の20件>

<< 0 | 1 >>

パスワード/

- Child Tree -