12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Drawing;
- using System.Data;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using System.Drawing.Drawing2D;
- namespace UAS_MES_NEW.CustomControl.TextBoxWithIcon
- {
- public partial class RoundTextBox : UserControl
- {
- TextBox box = new TextBox();
- public RoundTextBox()
- {
- InitializeComponent();
- box.BorderStyle = BorderStyle.None;
- box.Width = this.Width;
- box.KeyDown += Box_KeyDown;
- this.Controls.Add(box);
- }
- private void Box_KeyDown(object sender, KeyEventArgs e)
- {
- UserKeyDown?.Invoke(sender, e);
- }
- public new char PassWordChar
- {
- get { return box.PasswordChar; }
- set
- {
- box.PasswordChar = value;
- }
- }
- [DefaultValue("")]
- public new string Text
- {
- get { return box.Text; }
- set
- {
- box.Text = value;
- }
- }
- public delegate void OnUserKeyDown(object sender, KeyEventArgs e);
- //定义事件
- public event OnUserKeyDown UserKeyDown;
- int r = 6;
- [Category("布局"), Description("倒角半径。")]
- public int R
- {
- get { return r; }
- set
- {
- r = value;
- }
- }
- private void RoundTextBox_Paint(object sender, PaintEventArgs e)
- {
- int w = R * 2;
- base.OnPaintBackground(e);
- e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
- using (GraphicsPath path = new GraphicsPath())
- {
- path.AddArc(0, 0, w, w, 180, 90);
- path.AddArc(this.Width - w - 1, 0, w, w, -90, 90);
- path.AddArc(this.Width - w - 1, this.Height - w - 1, w, w, 0, 90);
- path.AddArc(0, this.Height - w - 1, w, w, 90, 90);
- path.CloseFigure();
- e.Graphics.FillPath(Brushes.White, path);
- using (Pen pen = new Pen(Color.Gray))
- {
- e.Graphics.DrawPath(pen, path);
- }
- }
- }
- private void RoundTextBox_Resize(object sender, EventArgs e)
- {
- box.Left = 5;
- box.Top = 3;
- }
- }
- }
|