2017-02-10 4 views
-1

сначала. Извините за мой плохой английский. Я новичок в визуальной студии и C#. обычно я код в java. Я попытался создать простой проект форм Windows. после этого я вложил в него текстовое поле. и я изменил это текстовое поле публично (автоматически сгенерировано) в public static. но когда я вижу версию дизайна и если я дважды щелкнул это текстовое поле, он снова станет общедоступным. что я могу сделать, если я все еще хочу, чтобы это текстовое поле оставалось неизменным без изменения вручную?Публичный статический элемент изменен автоматически

+2

Вы не хотите, чтобы элементы формы были статическими, поскольку они должны относиться к конкретному экземпляру формы. Почему вы так настаиваете на том, чтобы изменить его на статику? – itsme86

+0

Надеюсь, вы не планируете делать это из другой формы или другого класса: 'var text = Form1.textbox1.Text'. потому что вы получите исключение с нулевой ссылкой, даже если Visual Studio оставила его в покое и не изменила его обратно в поле экземпляра. Или если вы сделали это, как ответ предложил. Или я надеюсь, что вы не планируете делать это в своей команде. – CodingYoshi

+1

Вы не должны ставить поля формы в Java, и вы тоже не должны в .net. –

ответ

1

Элементы управления Windows Forms должны быть экземплярами, а не статическими, чтобы члены могли нормально работать. Вот почему разработчик вынуждает удалять статику.

Я предполагаю, что вы хотите поделиться этим значением else, где в приложении, если вы собираетесь использовать устаревшие Windows Forms, а не что-то более современное и поддерживаемое как WPF или UWP, я настоятельно рекомендую использовать шаблон Model-View-Presenter.

Смежные вопросы