Важно понимать порядок выполнения кода.Вы помещаете объявление поля в середине вашего кода, возможно, надеясь, что оно будет инициализировано после запуска метода checkBox1_CheckedChanged ().Но нет, поля инициализируются до того, как запустится конструктор класса.
Это никогда не могло бы закончиться хорошо.Объект textBox1 еще не существует, он создается конструктором в методе InitializeComponent ().У него наверняка еще не будет длины, которая не произойдет до тех пор, пока много позже, когда пользователь что-то введет.Ошибка компилятора избавляет вас от неприятностей.
Я понятия не имею, что пытается сделать код.Но предполагая, что переменная i
должна быть инициализирована чем-то, вы делаете это, когда пользователь вводит что-то в текстовое поле.Что приводит к изменению свойства Text.Length.Добавьте обработчик события для текстового поля 'TextChanged event:
private void textBox1_TextChanged(object sender, EventArgs e) {
if (textBox1.Text.Length <= 15) {
i = 15 - textBox1.Text.Length;
}
}