初始化提交
This commit is contained in:
@@ -0,0 +1,211 @@
|
||||
|
||||
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;
|
||||
|
||||
namespace JinYuan.ControlLib
|
||||
{
|
||||
public partial class NumKeyboard : UserControl
|
||||
{
|
||||
public NumKeyboard()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
[Browsable(false)]
|
||||
[Category("自定义属性")]
|
||||
[Description("最终的结果值")]
|
||||
public string ResultValue
|
||||
{
|
||||
get { return this.lbl_Result.Text; }
|
||||
}
|
||||
|
||||
private string initialValue;
|
||||
[Browsable(true)]
|
||||
[Category("自定义属性")]
|
||||
[Description("初始值")]
|
||||
public string InitialValue
|
||||
{
|
||||
get { return initialValue; }
|
||||
set
|
||||
{
|
||||
initialValue = value;
|
||||
this.lbl_Result.Text = value;
|
||||
}
|
||||
}
|
||||
|
||||
private float minValue = 0.0f;
|
||||
[Browsable(true)]
|
||||
[Category("自定义属性")]
|
||||
[Description("设置的最小值")]
|
||||
public float MinValue
|
||||
{
|
||||
get { return minValue; }
|
||||
set
|
||||
{
|
||||
minValue = value;
|
||||
this.lbl_Min.Text = value.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private float maxValue = 0.0f;
|
||||
[Browsable(true)]
|
||||
[Category("自定义属性")]
|
||||
[Description("设置的最大值")]
|
||||
public float MaxValue
|
||||
{
|
||||
get { return maxValue; }
|
||||
set
|
||||
{
|
||||
maxValue = value;
|
||||
this.lbl_Max.Text = value.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
[Browsable(false)]
|
||||
[Category("自定义属性")]
|
||||
[Description("关联控件")]
|
||||
public Control RelateControl { get; set; }
|
||||
|
||||
[Browsable(true)]
|
||||
[Category("自定义事件")]
|
||||
[Description("Enter按下事件")]
|
||||
public event EventHandler EnterClick;
|
||||
|
||||
|
||||
[Browsable(true)]
|
||||
[Category("自定义事件")]
|
||||
[Description("ESC按下事件")]
|
||||
public event EventHandler ESCClick;
|
||||
|
||||
private void btn_Enter_Click(object sender, EventArgs e)
|
||||
{
|
||||
string temp = this.lbl_Result.Text;
|
||||
|
||||
if (float.TryParse(temp, out float value))
|
||||
{
|
||||
if (value >= this.minValue && value <= this.maxValue)
|
||||
{
|
||||
EnterClick?.Invoke(this, e);
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void btn_Esc_Click(object sender, EventArgs e)
|
||||
{
|
||||
ESCClick?.Invoke(this, e);
|
||||
}
|
||||
|
||||
private void btn_Common_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (sender is Button button)
|
||||
{
|
||||
if (button.Text == ".")
|
||||
{
|
||||
//处理小数点
|
||||
if (this.lbl_Result.Text.Contains('.'))
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.lbl_Result.Text += button.Text;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
string temp = this.lbl_Result.Text + button.Text;
|
||||
|
||||
if (float.TryParse(temp, out float value))
|
||||
{
|
||||
if (value >= this.minValue && value <= this.maxValue)
|
||||
{
|
||||
this.lbl_Result.Text = temp;
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void btn_Del_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (this.lbl_Result.Text.Length == 0) return;
|
||||
|
||||
this.lbl_Result.Text = this.lbl_Result.Text.Substring(0, this.lbl_Result.Text.Length - 1);
|
||||
}
|
||||
|
||||
private void btn_Minus_Click(object sender, EventArgs e)
|
||||
{
|
||||
string temp = this.lbl_Result.Text;
|
||||
|
||||
if (temp.StartsWith("-"))
|
||||
{
|
||||
temp = temp.Remove(0, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
temp = temp.Insert(0, "-");
|
||||
}
|
||||
|
||||
if (float.TryParse(temp, out float value))
|
||||
{
|
||||
if (value >= this.minValue && value <= this.maxValue)
|
||||
{
|
||||
this.lbl_Result.Text = temp;
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#region 无边框拖动
|
||||
|
||||
private Point mPoint;
|
||||
private void lbl_Result_MouseDown(object sender, MouseEventArgs e)
|
||||
{
|
||||
mPoint = new Point(e.X, e.Y);
|
||||
}
|
||||
|
||||
private void lbl_Result_MouseMove(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
this.Location = new Point(this.Location.X + e.X - mPoint.X, this.Location.Y + e.Y - mPoint.Y);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user