Моя цель - создать 2 элемента управления Numeric Up Down для сохранения счета в теннисе.Поэтому я должен переопределить класс элемента управления Numeric Up Down, НО я не уверен, как создавать события или ссылаться на свойства этих пользовательских элементов управления из событий других элементов управления.
Я создал 2 пользовательских элемента управления этим методом(https://stackoverflow.com/a/5921599/10886205),, что позволило мне перейти с 0, 15, 30 на 40 и поместить в него текстовые значения после того, как оно превысило 40.
Однако элемент управления не существует в интерфейсе дизайнераVisual Studio, поэтому (потому что я вроде «программист-любитель»), я понятия не имею, как создать событие, например ValueUp, ValueDown, ValueChanged, ИЛИ как изменить какое-либо из свойств элемента управления, например Value или Text.из любого другого события, за исключением использования ключевого слова «this» в событиях переопределения, однако это не помогает мне программно связать элементы управления, так что, когда 1 игрок находится в «Adv», другой игрок находится в «- «, или когда один игрок сравняется с« Двойкой », тогда другой игрок также находится в« Двойке »(я пытался использовать Теги и переменнуюs, но я думаю, что это тупик.)
public partial class Form1 : Form
{
public class NumericUpDownEx : NumericUpDown
{
string tennisAdv = "none";
string whichNumUpDown = "unknown";
public NumericUpDownEx()
{
}
public override void UpButton()
{
if (Value == 0)
Value = 15;
else if (Value == 15)
Value = 30;
else if (Value == 30)
Value = 40;
else
base.UpButton();
}
public override void DownButton()
{
if (Value == 40)
Value = 30;
else if (Value == 30)
Value = 15;
else if (Value == 15)
Value = 0;
else
base.DownButton();
}
protected override void UpdateEditText()
{
if (Value > 40 & Value % 2 == 0)
{
this.Text = "Deuce";
}
else if (Value > 40 & Value % 2 != 0)
{
this.Text = "Adv";
}
else
{
this.Text = this.Value.ToString();
}
}
}
public Form1()
{
//create a custom UpDown for Tennis Points
//Tennis Away Points
NumericUpDown mynumTennisAwayScorePoints = new NumericUpDownEx
{
Location = new Point(249, 33),
Size = new Size(52, 20),
Minimum = 0,
Maximum = 1000
};
//Tennis Home POints
NumericUpDown mynumTennisHomeScorePoints = new NumericUpDownEx
{
Location = new Point(249, 32),
Size = new Size(52, 20),
Minimum = 0,
Maximum = 1000
};
//create all other standard componets for the form
InitializeComponent();
//place the two custom UpDowns
((System.ComponentModel.ISupportInitialize)(mynumTennisAwayScorePoints)).BeginInit();
((System.ComponentModel.ISupportInitialize)(mynumTennisHomeScorePoints)).BeginInit();
panel19.Controls.Add(mynumTennisAwayScorePoints);
mynumTennisAwayScorePoints.Tag = "away";
panel20.Controls.Add(mynumTennisHomeScorePoints);
mynumTennisHomeScorePoints.Tag = "home";
}
}
На данный момент у меня есть 2 пользовательских элемента управления, которые дают значения (0, 15, 30, 40, Adv, Deuce, Adv, Deuceи т. д.) в таком порядке, но я как бы там застрял.