В основном у меня есть программа WinForms с 2 формами. В одной форме я получаю весь пользовательский ввод, необходимый для информации, которую я выводю в основной форме. Как окно настроек. Однако, когда у меня есть текстовое поле MaterialSkin (я не знаю, имеет ли это значение) и что-то пишу в текстовом поле, я пытаюсь получить входные данные, создав событие textbox_textchanged
, которое сохраняет текущий текст в переменной. Однако я не могу получить доступ к этой переменной в моем другом классе. Это публично, но кажется, что переменная даже не хранится правильно.
Я попытался создать текстовое поле, которое в основной форме делает то же самое, и оно работало просто отлично. Но теперь, когда он у меня в отдельной форме, я не могу вызвать переменную и / или она не сохраняется должным образом
outputWindow.Text += settings.desiredHypixelLevel;
^ Строка в главной форме, которая должна печатать текущий текст требуемого уровня в текстовое поле с именем outputWindow
. settings.desiredHypixelLevel
определяется ниже.
private void desiredLevel_TextChanged(object sender, EventArgs e)
{
var parseSucessful = Int32.TryParse(this.Text, out desiredHypixelLevel);
if (!parseSucessful)
{
this.Text = "";
}
}
^ Код, который получает переменную из текстового поля во второй форме
В начале класса моей второй формы я определяю открытую переменную с именем desiredHypixelLevel
public int desiredHypixelLevel;
. Я ссылаюсь на класс с помощью Settings settings = new Settings();
(Settings
- это имя второй формы)
Изображение в макете моей формы: https://prntscr.com/m5ik1g (не отображается при встраивании)
Ожидаемый результат: переменная берется из текстового поля и сохраняется в переменной desiredHypixelLevel
. Однако там просто хранится 0.