-
Notifications
You must be signed in to change notification settings - Fork 0
/
TextBox.cs
81 lines (75 loc) · 2.72 KB
/
TextBox.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Windows.Forms;
namespace diplom
{
class TextBox: RichTextBox
{
//точка перемещения
Point DownPoint;
//нажата ли кнопка мыши
bool IsDragMode;
//public TextBox()
//{
// SetStyle(ControlStyles.SupportsTransparentBackColor | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);
// BackColor = Color.Transparent;
// BorderStyle = BorderStyle.None;
// ForeColor = Color.Black;
// BringToFront();
//}
protected override void OnMouseDown(MouseEventArgs mevent)
{
DownPoint = mevent.Location;
IsDragMode = true;
base.OnMouseDown(mevent);
}
protected override void OnMouseUp(MouseEventArgs mevent)
{
IsDragMode = false;
base.OnMouseUp(mevent);
if (mevent.Button == MouseButtons.Right)
{
using (ColorDialog cd = new ColorDialog())
{
cd.FullOpen = true;
if (cd.ShowDialog() == DialogResult.OK)
{
this.ForeColor = cd.Color;
}
}
using (FontDialog fd = new FontDialog())
{
try
{
fd.AllowScriptChange = false;
fd.AllowSimulations = false;
if (fd.ShowDialog() == DialogResult.OK)
{
this.Font = fd.Font;
}
}
catch (Exception ex)
{
//Not a truetype font
MessageBox.Show(this, ex.Message + Environment.NewLine + "Шрифт не изменен.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
}
}
protected override void OnMouseMove(MouseEventArgs mevent)
{
//если кнопка мыши нажата
if (IsDragMode)
{
Point p = mevent.Location;
//вычисляем разницу в координатах между положением курсора и "нулевой" точкой кнопки
Point dp = new Point(p.X - DownPoint.X, p.Y - DownPoint.Y);
Location = new Point(Location.X + dp.X, Location.Y + dp.Y);
}
base.OnMouseMove(mevent);
}
}
}