With compiling agains mono it should be possible to compile once and use on osx, linux and windows even using the standards form classes in .net. But i a application i want to use drag and drop of panels for that i have the following c# code. But is that also useable on osx and linux?

Code:
using System;
using System.Windows.Forms;

public class MovablePanel : Panel
{
  const int WM_LBUTTONDOWN = 0x201;
  const int WM_NCLBUTTONDOWN = 0xA1;
  readonly IntPtr HTCAPTION = (IntPtr)2;

  protected override void WndProc(ref Message m)
  {
    if (m.Msg == WM_LBUTTONDOWN)
    {
      m.Msg = WM_NCLBUTTONDOWN;
      m.WParam = HTCAPTION;
    }
    base.WndProc(ref m);
  }
}
Or should i investigate in silverlight/moonlight?