欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

winform實現(xiàn)可拖動的自定義Label控件

 更新時間:2018年03月28日 08:34:50   作者:炒飯君  
這篇文章主要為大家詳細(xì)介紹了winform實現(xiàn)可拖動的自定義Label控件,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了winform可拖動的自定義Label控件,供大家參考,具體內(nèi)容如下

效果預(yù)覽:

實現(xiàn)步驟如下:

(1)首先在項目上右擊選擇:添加->新建項,添加自定義控件

(2)自定義的一個Label讓它繼承LabelControl控件,LabelControl控件是DevExpress控件庫里面的一種,和Label控件差不多,想了解更多關(guān)于DevExpress控件,推薦到DevExpress控件論壇學(xué)習(xí):

public partial class LabelModule : LabelControl

(3)這個Label需要實現(xiàn)的MouseDown。

 private void LabelModule_MouseDown(object sender, MouseEventArgs e)
    {
      IsMouseDown = true;
      MousePrePosition = new Point(e.X, e.Y);
      this.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Simple;
      this.Cursor = Cursors.SizeAll;
    }

(4)MouseUp,也就是鼠標(biāo)彈起的方法。

private void LabelModule_MouseUp(object sender, MouseEventArgs e)
    {
      IsMouseDown = false;
      this.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Default;
      this.Cursor = Cursors.Default;
    }

(5)MouseMove,也就是鼠標(biāo)移動時的方法。

private void LabelModule_MouseMove(object sender, MouseEventArgs e)
    {
      if (!IsMouseDown) return;
      this.Top = this.Top + (e.Y - MousePrePosition.Y);
      this.Left = this.Left + (e.X - MousePrePosition.X);
    }

e.X,e.Y 指的是:鼠標(biāo)的坐標(biāo)因所引發(fā)的事件而異。例如,當(dāng)處理 Control.MouseMove 事件時,鼠標(biāo)的坐標(biāo)值是相對于引發(fā)事件的控件的坐標(biāo)。一些與拖放操作相關(guān)的事件具有相對于窗體原點或屏幕原點的關(guān)聯(lián)的鼠標(biāo)坐標(biāo)值。

完整代碼:LabelModule.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;

namespace IJPrinterSoftware
{
  public partial class LabelModule : LabelControl
  {
    private bool IsMouseDown = false;
    private Point MousePrePosition;
    
    private void init()
    {
      InitializeComponent();
      this.MouseDown += new MouseEventHandler(LabelModule_MouseDown);
      this.MouseUp += new MouseEventHandler(LabelModule_MouseUp);
      this.MouseMove+=new MouseEventHandler(LabelModule_MouseMove);
    }

    public LabelModule()
    {
      init();
    }

    private void LabelModule_MouseDown(object sender, MouseEventArgs e)
    {
      IsMouseDown = true;
      MousePrePosition = new Point(e.X, e.Y);
      this.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Simple;
      this.Cursor = Cursors.SizeAll;
    }

    private void LabelModule_MouseUp(object sender, MouseEventArgs e)
    {
      IsMouseDown = false;
      this.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Default;
      this.Cursor = Cursors.Default;
    }

    private void LabelModule_MouseMove(object sender, MouseEventArgs e)
    {
      if (!IsMouseDown) return;
      this.Top = this.Top + (e.Y - MousePrePosition.Y);
      this.Left = this.Left + (e.X - MousePrePosition.X);
    }
  }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Unity通過腳本創(chuàng)建網(wǎng)格Mesh的方法

    Unity通過腳本創(chuàng)建網(wǎng)格Mesh的方法

    Unity中的網(wǎng)格作為組件不能脫離物體單獨存在,通過新建腳本來實現(xiàn)相關(guān)操作,本文重點給大家介紹Unity通過腳本創(chuàng)建網(wǎng)格Mesh的方法,感興趣的朋友一起看看吧
    2022-04-04
  • 一篇文章徹底搞清楚c#中的委托與事件

    一篇文章徹底搞清楚c#中的委托與事件

    這篇文章主要給大家介紹了如何通過一篇文章徹底搞清楚c#中的委托與事件,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用c#具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Winform項目中使用FastReport.Net報表控件

    Winform項目中使用FastReport.Net報表控件

    這篇文章介紹了Winform項目中使用FastReport.Net報表控件的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C#中DataTable 轉(zhuǎn)換為 Json的方法匯總(三種方法)

    C#中DataTable 轉(zhuǎn)換為 Json的方法匯總(三種方法)

    JavaScript Object Notation (Json)是一種輕量級的數(shù)據(jù)交換格式,下面小編給大家介紹三種方法實現(xiàn)DataTable轉(zhuǎn)換成 Json 對象,感興趣的朋友一起看看吧
    2016-11-11
  • C#中的問號(?號)用法小結(jié)

    C#中的問號(?號)用法小結(jié)

    這篇文章主要介紹了C#中的問號(?號)用法小結(jié),本文介紹了3種用法,分別作為修飾符、運算符的用法,需要的朋友可以參考下
    2014-07-07
  • C#9特性record 類型、模式匹配、init 屬性詳情

    C#9特性record 類型、模式匹配、init 屬性詳情

    這篇文章主要介紹了C#的record 類型、模式匹配(Pattern Matching)、屬性的 init 訪問器三大特性,感興趣的小伙伴請參考下面文章內(nèi)容
    2021-09-09
  • C#中ValueTuple的原理詳解

    C#中ValueTuple的原理詳解

    C# 7.0已經(jīng)出來一段時間了,大家都知道新特性里面有個對元組的優(yōu)化:ValueTuple,下面這篇文章主要給大家介紹了關(guān)于C#中ValueTuple原理的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • C#實現(xiàn)讀取Word表格到DataSet

    C#實現(xiàn)讀取Word表格到DataSet

    在應(yīng)用項目里,多數(shù)情況下我們會遇到導(dǎo)入 Excel 文件數(shù)據(jù)到數(shù)據(jù)庫的功能需求,但某些情況下,也存在使用 Word 進(jìn)行表格數(shù)據(jù)編輯的情況,這其中也包括導(dǎo)入Word內(nèi)容的功能,比如表格數(shù)據(jù)導(dǎo)出到DataSet數(shù)據(jù)集,本文將給大家介紹了C#讀取Word表格到DataSet
    2023-12-12
  • C#日期格式化的幾個要點小結(jié)

    C#日期格式化的幾個要點小結(jié)

    本文將介紹C#日期格式化的幾個要點,包括標(biāo)準(zhǔn) DateTime 格式字符串。希望大家能從中得到更多的理解和幫助
    2013-09-09
  • Unity3D實現(xiàn)飛機(jī)大戰(zhàn)游戲(1)

    Unity3D實現(xiàn)飛機(jī)大戰(zhàn)游戲(1)

    這篇文章主要為大家詳細(xì)介紹了Unity3D實現(xiàn)飛機(jī)大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06

最新評論