C#中对虚拟属性和抽象属性的重写,重写label实例
?
//********************重寫label
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ETES.AutoControl_ES.Controls
{
? ?public class MyLabel:Label
? ? {
? ? ? ? public override string Text {
? ? ? ? ? ??
? ? ? ? ? ? get
? ? ? ? ? ? {
? ? ? ? ? ? ? ? return base.Text;
? ? ? ? ? ? }
? ? ? ? ? ? set
? ? ? ? ? ? {
? ? ? ? ? ? ? ? string str="";
? ? ? ? ? ? ? ? for(int i=0;i<value.Length;i++)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? str += value[i];
? ? ? ? ? ? ? ? ? ? if (i % 10==0) str += "\r\n";
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ?base.Text = str;
? ? ? ? ? ? }
? ? ? ? }
? ? }
}
//***************************
? #region //控制按鈕標題
? ? ? ? public MyLabel lb = new MyLabel();
? ? ? ? public void InitialTitleManager()
? ? ? ? {
? ? ? ? ? ? //lb.Parent = this;
? ? ? ? ? ? lb.Visible = true;
? ? ? ? ? ? lb.AutoSize = true;
? ? ? ? ? ? lb.Font=new System.Drawing.Font("宋體", 9, System.Drawing.FontStyle.Bold);
? ? ? ? ? ? foreach (Control v in this.groupBox_CAutoScanSet.Controls)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? if (v.Name.Contains("label"))
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? v.MouseHover += TitleMouseHover;
? ? ? ? ? ? ? ? ? ? v.MouseLeave += TitleMouseLeave;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? // ?MessageBox.Show(" comboBox_AxisType.MouseHover+= TitleMouseHover;");
? ? ? ? ??
? ? ? ? ? ? comboBox_AxisType.MouseHover+= TitleMouseHover;
? ? ? ? ? ? comboBox_AxisType.MouseLeave += TitleMouseLeave;
? ? ? ? }
? ? ? ? public void TitleMouseHover(object sender, EventArgs e)
? ? ? ? {
? ? ? ? ? ? Control control = sender as Control;
? ? ? ? ? ? lb.Location = new System.Drawing.Point(control.Location.X + control.Width, control.Location.Y);
? ? ? ? ? ? string titile = "";
? ? ? ? ? ? //MessageBox.Show(control.Name);//2020.4.1注釋
? ? ? ? ? ? if (control.Name.Contains("label"))
? ? ? ? ? ? {
? ? ? ? ? ? ? ? //MessageBox.Show(control.Name);//2020.4.1注釋
? ? ? ? ? ? ? ? string tempStr = "";
? ? ? ? ? ? ? ? if(control.Text.Contains("AX2"))
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? tempStr = control.Text.Substring(0, 3);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? tempStr = control.Text.Substring(0, 2);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? if (StepModule.AxisDescription.ContainsKey(tempStr))
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? titile = StepModule.AxisDescription[tempStr];
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? else if(control.Name.Contains("comboBox"))
? ? ? ? ? ? {
? ? ? ? ? ? ? ? //MessageBox.Show(control.Name);//2020.4.1注釋
? ? ? ? ? ? ? ? titile = StepModule.AxisDescription[control.Text];
? ? ? ? ? ? }
? ? ? ? ? ? lb.Parent = control.Parent;
? ? ? ? ? ? lb.Visible = true;
? ? ? ? ? ? lb.BringToFront();
? ? ? ? ? ? lb.Location = new System.Drawing.Point(control.Location.X + control.Width, control.Location.Y);
? ? ? ? ? ? lb.Text = titile;
? ? ? ? }
? ? ? ? ? ?
? ? ? ??
? ? public void TitleMouseLeave(object sender, EventArgs e)
? ? {
? ? ? ? Control control = sender as Control;//此處control只是局部變量,函數結束后,control釋放,control引用的對象不會釋放
? ? ? ? lb.Location = new System.Drawing.Point(control.Location.X + control.Width, control.Location.Y);
? ? ? ? lb.Visible = false;
? ? ? ? lb.AutoSize = true;
? ? ? ? lb.Text = "";
? ? }
? ? #endregion
總結
以上是生活随笔為你收集整理的C#中对虚拟属性和抽象属性的重写,重写label实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jackson 的注解:@JsonPro
- 下一篇: C#中如何复制窗体到另一个项目