お世話になります。

C#でデスクトップアクセサリを作ろうとして躓きました。
フォームのTransparencyKeyをフォームのBackColorに設定して、
BorderStyleをNoneにし、マスコットキャラ的なところまでを
作るには完成しました。

その後、常に最背面に表示させたくて、ネットのサンプルを見て、
下記のように追加しました。

public class Form1 : System.Windows.Forms.Form
{

    // FindWindow 関数
    [DllImport("USER32.DLL", CharSet = CharSet.Auto)]
    private static extern System.IntPtr FindWindow(
        string lpClassName,
        string lpWindowName
    );


    // SetParent 関数
    [DllImport("USER32.DLL", CharSet = CharSet.Auto)]
    private static extern System.IntPtr SetParent(
        System.IntPtr hWndChild,
        System.IntPtr hWndNewParent
    );


    private void button1_Click(object sender, System.EventArgs e)
    {
        // Program Manager のハンドルを取得する
        System.IntPtr hProgramManagerHandle = FindWindow(null, "Program Manager");

        // 正しく取得できた場合は、Program Manager を親ウィンドウに設定する
        if (!hProgramManagerHandle.Equals(System.IntPtr.Zero))
        {
            SetParent(this.Handle, hProgramManagerHandle);
        }
    }
}

このコードを実行したところ、最背面に表示するどころか、フォーム自体が完全に
非表示になってしまいます。おまけにタスクバーにも表示されなくなるため、手動で
閉じることもできなくなります。

フォームを透過させてしまうと、最背面に指定することはできなるなるのでしょうか。

もし、実現する方法があれば、教えていただけないでしょうか。

よろしくお願いいたします。