I have a number of controls on a tab page. I want to validate them all
when the user tries to leave the tab. I then want to highlight the
first control which fails validation. How can I do this? I try setting
focus but something seems to set the focus back to the control which
had it before validation. Any ideas?
TIA,
KK
Sheng Jiang[MVP] - 14 Jan 2008 18:55 GMT
If you are using MFC, see MFC Library Reference TN026: DDX and DDV Routines
kelvin.koogan@googlemail.com - 14 Jan 2008 21:02 GMT
On 14 Jan, 19:46, "Sheng Jiang[MVP]" <sheng_ji...@hotmail.com.discuss>
wrote:
> If you are using MFC, see MFC Library Reference TN026: DDX and DDV Routines
Thanks, but I'm not using MFC, that's why I posted in a dotnet forum.
KK
Ben Voigt [C++ MVP] - 31 Jan 2008 23:34 GMT
>I have a number of controls on a tab page. I want to validate them all
> when the user tries to leave the tab. I then want to highlight the
> first control which fails validation. How can I do this? I try setting
> focus but something seems to set the focus back to the control which
> had it before validation. Any ideas?
What is the call stack when you change the focus? If it is in the middle of
processing a focus change event then something might indeed change the focus
afterward.
You could post a custom message to yourself and set the focus then, it will
be placed at the end of the message queue instead of setting the focus
synchronously. The .NET way of doing PostMessage to another thread is with
Control.BeginInvoke, I'm not sure how that would work on the same thread.
I'd use the real PostMessage just to be safe. Or for pure .NET, a winforms
timer could work too.
> TIA,
> KK