Как сделать так, чтобы целое число получало значение из метки? - PullRequest
0 голосов
/ 17 апреля 2020

Метка получает свое значение, если страница загружается из другой формы.


public void Form1_Load(object sender, EventArgs e)
{
    totalChips.Text = Program_start.passingLabel;
}

при попытке вычесть значение из значения totalChips, я получаю сообщение об ошибке: «Оператор» - = «не может быть применен к операнды типа 'Label' и 'int' "я пытался преобразовать текст метки в int с помощью Convert.ToInt и Parse, но ни один из них не работал, есть ли другой способ?

Ответы [ 3 ]

0 голосов
/ 17 апреля 2020

Правильный синтаксис:

totalChips.Text = $"{int.Parse(totalChips.Text) - betAmount}";

или, в общем случае, если totalChips.Text может иметь произвольное значение (необязательно допустимое целое число)

totalChips.Text = int.TryParse(totalChips.Text, out var chips)
  ? $"{chips - betAmount}"
  : "???";  

обратите внимание, что Вы должны присвоить string свойству Text , а не самому Label .

0 голосов
/ 17 апреля 2020

Я думаю, вы хотите просто уменьшить значение в totalChips.Text, и что ваше значение Program_start.passingLabel не имеет значения.

Я написал это, чтобы разобрать целочисленные в текст и обратные преобразования. Но операция .ToString() неявна, когда вы присваиваете числовое значение c текстовому полю.

Большинство элементов управления форм WebForms имеют атрибуты .Value. Label имеет, как вы знаете, атрибут .Text вместо этого. Я часто забываю использовать атрибуты, но я использую Resharper. Это напоминает мне.

Это работает для вас?

var intVal = Convert.ToInt32(totalChips.Text);
intVal -= integerValueToSubtract;
totalChips.Text = intVal.ToString();
0 голосов
/ 17 апреля 2020

Использовать Label.Text

public void Form1_Load(object sender, EventArgs e)
{
    totalChips.Text = Program_start.passingLabel.Text;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...