資源簡介
C# 實現鼠標拖動繪制線段、矩形,所繪圖形支持拖拽,分享給有需要的朋友。

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Data;
using?System.Drawing;
using?System.Linq;
using?System.Text;
using?System.Threading.Tasks;
using?System.Windows.Forms;
using?System.Drawing.Drawing2D;
namespace?DrawUtil
{
????public?partial?class?FormMain?:?Form
????{
????????public?FormMain()
????????{
????????????InitializeComponent();
????????????Setstyle(Controlstyles.DoubleBuffer?true);
????????????Setstyle(Controlstyles.OptimizedDoubleBuffer?true);
????????????Setstyle(Controlstyles.AllPaintingInWmPaint?true);
????????????Setstyle(Controlstyles.UserPaint?true);
????????????Setstyle(Controlstyles.SupportsTransparentBackColor?true);???//模擬透明???????
????????????Setstyle(Controlstyles.Selectable?true);?????????????????????//接收焦點
????????????Setstyle(Controlstyles.AllPaintingInWmPaint?true);???????????//忽略?WM_ERASEBKGND?窗口消息減少閃爍
????????????this.Updatestyles();
????????????this.Padding?=?new?Padding(0?0?0?0);
????????????this.Margin?=?new?Padding(0?0?0?0);
????????}
????????#region?變量
????????LineClass?line;
????????bool?drawkine?=?false;
????????bool?isDragTo?=?false;
????????bool?isStretchTo?=?false;
????????Point?dragFromPoint;
????????Point?dragToPoint;
????????#endregion
????????void?m_PicDrawCtl_MouseDown(object?sender?MouseEventArgs?e)
????????{
????????????if?(e.Button?==?MouseButtons.Right)
????????????{
????????????????return;
????????????}
????????????try
????????????{
????????????????try
????????????????{
????????????????????//新建圖形
????????????????????{
????????????????????????if?(line?==?null)
????????????????????????{
????????????????????????????line?=?new?LineClass();
????????????????????????????if?(this.radioBtnLine.Checked)
????????????????????????????{
????????????????????????????????line.Drawstyle?=?Drawstyle.Line;
????????????????????????????}
????????????????????????????if?(this.radiobtnRect.Checked)
????????????????????????????{
????????????????????????????????line.Drawstyle?=?Drawstyle.Rect;
????????????????????????????}
????????????????????????????line.Start?=?e.Location;
????????????????????????????line.BackColor1?=?this.m_PicDrawCtl.BackColor;
????????????????????????????return;
????????????????????????}
????????????????????}
????????????????}
????????????????catch?{?}
????????????????try
????????????????{
????????????????????//拖拽圖形
????????????????????{
????????????????????????if?(this.line.Contains(e.Location))
????????????????????????{
????????????????????????????this.m_PicDrawCtl.Cursor?=?Cursors.SizeAll;
????????????????????????????this.isDragTo?=?true;
????????????????????????????this.dragFromPoint?=?e.Location;
????????????????????????????return;
????????????????????????}
????????????????????}
????????????????}
????????????????catch?{?}
????????????????try
????????????????{?
????????????????????//繼續繪制
????????????????????{
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????5120??2017-09-30?10:10??DrawUtil\.vs\DrawUtil\v14\.suo
?????文件????????187??2017-09-29?13:48??DrawUtil\App.config
?????文件??????12800??2017-09-30?09:46??DrawUtil\bin\Debug\DrawUtil.exe
?????文件????????187??2017-09-29?13:48??DrawUtil\bin\Debug\DrawUtil.exe.config
?????文件??????30208??2017-09-30?09:46??DrawUtil\bin\Debug\DrawUtil.pdb
?????文件??????22984??2017-09-29?13:48??DrawUtil\bin\Debug\WindowsFormsApplication3.vshost.exe
?????文件????????187??2017-09-29?13:48??DrawUtil\bin\Debug\WindowsFormsApplication3.vshost.exe.config
?????文件????????490??2010-03-17?22:39??DrawUtil\bin\Debug\WindowsFormsApplication3.vshost.exe.manifest
?????文件??????13312??2017-09-30?10:09??DrawUtil\bin\Release\DrawUtil.exe
?????文件????????187??2017-09-29?13:48??DrawUtil\bin\Release\DrawUtil.exe.config
?????文件??????30208??2017-09-30?10:09??DrawUtil\bin\Release\DrawUtil.pdb
?????文件??????22696??2017-09-30?10:10??DrawUtil\bin\Release\DrawUtil.vshost.exe
?????文件????????187??2017-09-29?13:48??DrawUtil\bin\Release\DrawUtil.vshost.exe.config
?????文件????????490??2010-03-17?22:39??DrawUtil\bin\Release\DrawUtil.vshost.exe.manifest
?????文件???????3901??2017-09-29?14:18??DrawUtil\DrawUtil.csproj
?????文件??????11534??2017-09-30?10:09??DrawUtil\FormMain.cs
?????文件???????5062??2017-09-30?10:09??DrawUtil\FormMain.Designer.cs
?????文件???????5817??2017-09-30?10:09??DrawUtil\FormMain.resx
?????文件????????523??2017-09-29?14:18??DrawUtil\Program.cs
?????文件???????1354??2017-09-29?14:18??DrawUtil\Properties\AssemblyInfo.cs
?????文件???????2856??2017-09-29?14:18??DrawUtil\Properties\Resources.Designer.cs
?????文件???????5612??2017-09-29?13:48??DrawUtil\Properties\Resources.resx
?????文件???????1108??2017-09-29?14:18??DrawUtil\Properties\Settings.Designer.cs
?????文件????????249??2017-09-29?13:48??DrawUtil\Properties\Settings.settings
?????目錄??????????0??2017-09-30?09:03??DrawUtil\.vs\DrawUtil\v14
?????目錄??????????0??2017-09-30?08:54??DrawUtil\.vs\DrawUtil
?????目錄??????????0??2017-09-30?09:46??DrawUtil\bin\Debug
?????目錄??????????0??2017-09-30?10:09??DrawUtil\bin\Release
????...D.H.?????????0??2017-09-30?08:54??DrawUtil\.vs
?????目錄??????????0??2017-09-29?17:56??DrawUtil\bin
............此處省略5個文件信息
- 上一篇:一套C#編寫的醫生生成處方軟件
- 下一篇:c#繪制矩形(鼠標拉伸與平移)
評論
共有 條評論