1

我正在开发一项功能,允许用户将不同类型的控件添加到面板(图片框、标签、文本框、按钮),而且这些控件应该在面板上“可移动”。为了解决这个问题,我创建了(在其他答案的帮助下)一个从 Label 继承的自定义控件类,“可移动”行为已经实现。我需要帮助来抽象此类中的所有逻辑,以便我可以在其他控件上重用它,而不是为每个控件创建一个类。当前 CustomLabel 类的示例代码

public class CustomLabel : Label
{
     private bool m_Moving;
     private Cursor m_CurrentCursor;
     protected bool IsColliding { get; set;}
     private Point InitialPosition { get; set; } 

     public CustomLabel ()
        : base()
     {            
        MouseUp += CustomLabel_MouseUp;
        MouseMove += CustomLabel_MouseMove;
     }

     private void CustomLabel_MouseUp(object sender, MouseEventArgs e)
     {
        m_Moving = false;
        base.Cursor = m_CurrentCursor;
        if (this.IsColliding)
        {
            base.Location = InitialPosition;
        }
      }
      .....
}

我还阅读了有关扩展方法的信息,但无法使其与事件一起使用。

4

0 回答 0