Files
VisionEdit/UsingControl/HZHControls/Controls/KeyBord/UCKeyBorderAll.cs
liu.wenjie a24dda2525 1、优化LOG显示与引用
2、添加PMA工具,工具内容待完善
3、修复流程树显示
4、添加开源项目,优化UI空间
5、其他BUG更改
2021-11-23 15:51:37 +08:00

220 lines
6.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// ***********************************************************************
// Assembly : HZH_Controls
// Created : 08-08-2019
//
// ***********************************************************************
// <copyright file="UCKeyBorderAll.cs">
// Copyright by Huang Zhenghui(黄正辉) All, QQ group:568015492 QQ:623128629 Email:623128629@qq.com
// </copyright>
//
// Blog: https://www.cnblogs.com/bfyx
// GitHubhttps://github.com/kwwwvagaa/NetWinformControl
// giteehttps://gitee.com/kwwwvagaa/net_winform_custom_control.git
//
// If you use this code, please keep this note.
// ***********************************************************************
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;
namespace HZH_Controls.Controls
{
/// <summary>
/// Class UCKeyBorderAll.
/// Implements the <see cref="System.Windows.Forms.UserControl" />
/// </summary>
/// <seealso cref="System.Windows.Forms.UserControl" />
[DefaultEvent("KeyDown")]
public partial class UCKeyBorderAll : UserControl
{
/// <summary>
/// The character type
/// </summary>
private KeyBorderCharType _charType = KeyBorderCharType.CHAR;
/// <summary>
/// Gets or sets the type of the character.
/// </summary>
/// <value>The type of the character.</value>
[Description("默认显示样式"), Category("自定义")]
public KeyBorderCharType CharType
{
get { return _charType; }
set
{
_charType = value;
if (value == KeyBorderCharType.CHAR)
{
if (label37.Text.ToLower() == "abc.")
{
CharOrNum();
}
}
else
{
if (label37.Text.ToLower() == "?123")
{
CharOrNum();
}
}
}
}
/// <summary>
/// Occurs when [key click].
/// </summary>
[Description("按键点击事件"), Category("自定义")]
public event EventHandler KeyClick;
/// <summary>
/// Occurs when [enter click].
/// </summary>
[Description("回车点击事件"), Category("自定义")]
public event EventHandler EnterClick;
/// <summary>
/// Occurs when [backspace clike].
/// </summary>
[Description("删除点击事件"), Category("自定义")]
public event EventHandler BackspaceClike;
/// <summary>
/// Occurs when [retract clike].
/// </summary>
[Description("收起点击事件"), Category("自定义")]
public event EventHandler RetractClike;
/// <summary>
/// Initializes a new instance of the <see cref="UCKeyBorderAll" /> class.
/// </summary>
public UCKeyBorderAll()
{
InitializeComponent();
}
/// <summary>
/// Handles the MouseDown event of the KeyDown control.
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="MouseEventArgs" /> instance containing the event data.</param>
private void KeyDown_MouseDown(object sender, MouseEventArgs e)
{
Label lbl = sender as Label;
if (string.IsNullOrEmpty(lbl.Text))
{
return;
}
if (lbl.Text == "大写")
{
ToUper(true);
lbl.Text = "小写";
}
else if (lbl.Text == "小写")
{
ToUper(false);
lbl.Text = "大写";
}
else if (lbl.Text == "?123" || lbl.Text == "abc.")
{
CharOrNum();
}
else if (lbl.Text == "空格")
{
SendKeys.Send(" ");
}
else if (lbl.Text == "删除")
{
SendKeys.Send("{BACKSPACE}");
if (BackspaceClike != null)
BackspaceClike(sender, e);
}
else if (lbl.Text == "回车")
{
SendKeys.Send("{ENTER}");
if (EnterClick != null)
EnterClick(sender, e);
}
else if (lbl.Text == "收起")
{
if (RetractClike != null)
RetractClike(sender, e);
}
else
{
string Str = "{"+ lbl.Text + "}";
SendKeys.Send(lbl.Text);
}
if (KeyClick != null)
KeyClick(sender, e);
}
/// <summary>
/// Converts to uper.
/// </summary>
/// <param name="bln">if set to <c>true</c> [BLN].</param>
private void ToUper(bool bln)
{
foreach (Control item in this.tableLayoutPanel2.Controls)
{
if (item is Panel)
{
foreach (Control pc in item.Controls)
{
if (pc is Label)
{
if (pc.Text == "abc.")
break;
if (bln)
{
pc.Text = pc.Text.ToUpper();
}
else
{
pc.Text = pc.Text.ToLower();
}
break;
}
}
}
}
}
/// <summary>
/// Characters the or number.
/// </summary>
private void CharOrNum()
{
foreach (Control item in this.tableLayoutPanel2.Controls)
{
if (item is Panel)
{
foreach (Control pc in item.Controls)
{
if (pc is Label)
{
string strTag = pc.Text;
pc.Text = pc.Tag.ToString();
pc.Tag = strTag;
break;
}
}
}
}
}
}
/// <summary>
/// Enum KeyBorderCharType
/// </summary>
public enum KeyBorderCharType
{
/// <summary>
/// The character
/// </summary>
CHAR = 1,
/// <summary>
/// The number
/// </summary>
NUMBER = 2
}
}