用c#如何制作像flashget样的悬浮窗啊?
请高手把代码贴下

解决方案 »

  1.   

    设置TopMost为true即可。
    BorderStyle设为None。
    然后处理
    MouseDown
    MouseMove
    MouseUp
    这三个事件可以加在ContextMenu。
      

  2.   

    请问愚翁:能不能贴出代码
    昨天我就是这么写的,但总觉有问题 
    比如:怎么实现拖动BorderStyle设为None的form
    mousedown事件中如何弹出原来的主窗口
    刚刚开始c#编写,不是太熟
    望愚翁指教 看了你的blog不错
      

  3.   

    稍后我会整理到blog中
    private Point ptMouseCurrrnetPos,ptMouseNewPos,ptFormPos,ptFormNewPos;
    private bool blnMouseDown=false;private void frmTopMost_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    if( blnMouseDown )
    {
    //get the position of the mouse in the screen
    ptMouseNewPos = Control.MousePosition;
    ptFormNewPos.X = ptMouseNewPos.X - ptMouseCurrrnetPos.X + ptFormPos.X;
    ptFormNewPos.Y = ptMouseNewPos.Y - ptMouseCurrrnetPos.Y + ptFormPos.Y;
    Location = ptFormNewPos;
    ptFormPos = ptFormNewPos;
    ptMouseCurrrnetPos = ptMouseNewPos;
    }
    }private void frmTopMost_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    if(e.Button==MouseButtons.Left)
    {
    blnMouseDown = true;
    ptMouseCurrrnetPos = Control.MousePosition;
    ptFormPos = Location;
    }
    }private void frmTopMost_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    if( e.Button == MouseButtons.Left)
    blnMouseDown = false;
    }
      

  4.   

    这是谢谢愚翁!留个mail或者联系方式吧 有问题多向你请教
    我等会试试 然后给分
    谢谢
      

  5.   

    还有个问题:双击悬浮窗如何打开原来的窗体呢?
    要用到MDI窗体吗?
      

  6.   

    自己搞定了!错误理解了MDI窗体
    private void Form2_DoubleClick(object sender, System.EventArgs e)
    { //this.Hide();

    this.Owner.Show();
    this.Close();
    }
    }
    创建窗体的地方:
    Form2 form = new Form2();
    form.Owner = this;
    form.Show();