【问题标题】:Make one form move another one at the same time (C#)使一个表单同时移动另一个表单(C#)
【发布时间】:2012-11-25 11:40:51
【问题描述】:

我有一个主窗体 Form1 和一个辅助窗体 LogForm。当 LogForm 首次出现时,它的左上角应该与 Form1 的右上角相接触。我可以做那部分。但是,如果我移动 Form1 时可以让 LogForm 保持与 Form1 接触,我也希望它(即,拖动 Form1 会拖动 LogForm)。任何想法如何做到这一点?编辑:我对鼠标事件很陌生,所以如果涉及到,请彻底解释。

【问题讨论】:

    标签: c# forms drag


    【解决方案1】:

    最终答案;效果很好! (lf 是一个 LogForm)

    private void Form1_Move(object sender, EventArgs e) 
    { 
        Point f1pos = self.Location; 
        Point logPos = new Point(f1pos.X + this.Width + 5, f1pos.Y + 5); 
        lf.StartPosition = FormStartPosition.Manual; 
        lf.DesktopLocation = logPos; 
    }
    

    【讨论】:

      【解决方案2】:

      您可以使用Move event 来处理位置更新。该事件将返回表单的新位置 - 左上角。将表单的宽度添加到此,您应该能够获得所需的位置信息。

      【讨论】:

      • LocationChanged 更规范一些,但 Move 会起作用。但是,它不会“返回新位置”,请使用 Location 属性。
      • 听从了卡米的建议;我的解决方案是回答
      【解决方案3】:

      在主窗口中添加一个事件处理程序

       this.LocationChanged += new System.EventHandler(this.MainWindow_LocationChanged);
      

      在事件处理程序例程调用中

      SlaveWindow.Location = new Point(this.Location.X + this.Width, this.Location.Y);
      

      来自 LocationChanged 事件处理程序

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-08-18
        • 1970-01-01
        • 1970-01-01
        • 2016-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多