Click here to Skip to main content
15,885,366 members
Articles / Programming Languages / C#
Tip/Trick

Fix the focus issue on RDP Client from the AxInterop.MSTSCLib.dll

Rate me:
Please Sign up or sign in to vote.
4.25/5 (4 votes)
18 Sep 2010CPOL 37.2K   5   4
Quick and dirty fix for the focus issue on the RDP Client.
If you ever worked with the RemoteDesktop Client from Microsoft, you probably ran into this bug.

When selecting another component on your application, the client of course loses focus, but when you want to select the client component again, the only way is to use the TAB button, you won't be able to select the client component with the mouse button, so here's a fix. ;)

C#
public class MsRdpClient2 : AxMSTSCLib.AxMsRdpClient2
{
    public MsRdpClient2()
        : base()
    {
    }

    protected override void WndProc(ref System.Windows.Forms.Message m)
    {
        //Fix for the missing focus issue on the rdp client component
        if (m.Msg == 0x0021) //WM_MOUSEACTIVATE ref:http://msdn.microsoft.com/en-us/library/ms645612(VS.85).aspx
            this.Focus();
        base.WndProc(ref m);
    }
}
public class MsRdpClient3 : AxMSTSCLib.AxMsRdpClient3
{
    public MsRdpClient3()
        : base()
    {
    }

    protected override void WndProc(ref System.Windows.Forms.Message m)
    {
        //Fix for the missing focus issue on the rdp client component
        if (m.Msg == 0x0021) //WM_MOUSEACTIVATE ref:http://msdn.microsoft.com/en-us/library/ms645612(VS.85).aspx
            this.Focus();
        base.WndProc(ref m);
    }
}
public class MsRdpClient4 : AxMSTSCLib.AxMsRdpClient4
{
    public MsRdpClient4()
        : base()
    {
    }

    protected override void WndProc(ref System.Windows.Forms.Message m)
    {
        //Fix for the missing focus issue on the rdp client component
        if (m.Msg == 0x0021) //WM_MOUSEACTIVATE ref:http://msdn.microsoft.com/en-us/library/ms645612(VS.85).aspx
            this.Focus();
        base.WndProc(ref m);
    }
}
public class MsRdpClient5 : AxMSTSCLib.AxMsRdpClient5
{
    public MsRdpClient5()
        : base()
    {
    }

    protected override void WndProc(ref System.Windows.Forms.Message m)
    {
        //Fix for the missing focus issue on the rdp client component
        if (m.Msg == 0x0021) //WM_MOUSEACTIVATE ref:http://msdn.microsoft.com/en-us/library/ms645612(VS.85).aspx
            this.Focus();
        base.WndProc(ref m);
    }
}
public class MsRdpClient6 : AxMSTSCLib.AxMsRdpClient6
{
    //Fix for the missing focus issue on the rdp client component
    public MsRdpClient6()
        : base()
    {
    }

    protected override void WndProc(ref System.Windows.Forms.Message m)
    {
        //Fix for the missing focus issue on the rdp client component
        if (m.Msg == 0x0021) //WM_MOUSEACTIVATE ref:http://msdn.microsoft.com/en-us/library/ms645612(VS.85).aspx
            this.Focus();
        base.WndProc(ref m);
    }
}
public class MsRdpClient7 : AxMSTSCLib.AxMsRdpClient7
{
    public MsRdpClient7()
        : base()
    {
    }

    protected override void WndProc(ref System.Windows.Forms.Message m)
    {
        //Fix for the missing focus issue on the rdp client component
        if (m.Msg == 0x0021) //WM_MOUSEACTIVATE ref:http://msdn.microsoft.com/en-us/library/ms645612(VS.85).aspx
            this.Focus();
        base.WndProc(ref m);
    }
}

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer
Denmark Denmark

Comments and Discussions

 
GeneralThis is a good solution for the loss of focus of the control... Pin
David Kragar15-Feb-12 11:32
David Kragar15-Feb-12 11:32 
GeneralThis is a good solution for the loss of focus of the control... Pin
David Kragar15-Feb-12 11:28
David Kragar15-Feb-12 11:28 
GeneralReason for my vote of 4 This is just what I needed to fix th... Pin
BruceCarson18-Oct-11 4:41
BruceCarson18-Oct-11 4:41 
Questiondragdrop Pin
quik36629-Feb-12 4:51
quik36629-Feb-12 4:51 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.