Во-первых, убедитесь, что для параметра ydelay в свойствах проекта задано значение Scope User, поскольку область применения только для чтения.Затем дважды проверьте тип данных Integer.
Вы не увидите изменений в свойствах проекта.Они хранятся в User.config.Расположение: C: \ Users \ [Имя пользователя] \ AppData \ Local \ TestCode2 \ TestCode2.exe_Url_aq2yohztn2r23tmvf0pbczm25mx0yx11 \ 1.0.0.0 для моего проекта с именем TestCode2.
Lo and behold ...
<setting name="ydelay" serializeAs="String">
<value>1</value>
</setting>
Если вы перейдете на другой компьютер, настройка ydelay будет исходным значением, как показано в Свойствах проекта.Это имеет смысл, потому что это настройка «Пользователь», и каждый пользователь будет иметь собственную настройку.
Что касается кода.Мне не нравится событие TextChanged.Он срабатывает каждый раз при нажатии клавиши;это включает в себя Backspace.Может быть, Leave будет работать для вас.
.TryParse - хороший способ проверить ввод.Он выполняет двойную функцию, устанавливая переменную и возвращая логическое значение, чтобы оно вписывалось прямо в оператор If.
Private Sub TextBox16_Leave(sender As Object, e As EventArgs) Handles TextBox16.Leave
Dim i As Integer
If Integer.TryParse(TextBox16.Text, i) Then
My.Settings.ydelay = i
Else
MessageBox.Show("Please enter a number in TextBox 16")
TextBox16.Select() 'If you want to insist
End If
End Sub