Люди дали несколько хороших альтернатив и комментариев, но позвольте мне ответить на вопрос, что именно происходит в этих строках кода .
Извините, если это слишком просто, но вы действительно сказали, что вы только изучали C #. :)
this.textBox1.Text = "";
this.textBox1 = this.textBox2 = this.textBox3 = this.textBox4;
Во-первых, поймите, что textBox1
, textBox2
и т. Д. Являются ссылками на объекты типа TextBox
, которые содержатся в вашем Form
. Каждый TextBox
имеет свойство с именем Text
типа string. Если я правильно понимаю, вы хотели бы удалить текст из всех четырех текстовых полей в вашей форме, то есть вы хотите установить значение свойства Text
для каждого TextBox
в пустую строку ""
.
Ваша первая строка кода делает это, но только для первой TextBox
. Однако вторая строка кода, как указали другие, присваивает каждой ссылке textBox<n>
ссылку на тот же TextBox
, что и textBox4
. Если textBox4.Text
окажется пустой строкой, появится , чтобы делать то, что вы хотите, но на самом деле вы изменили состояние ссылок на сами TextBoxes
, а не значения в каждый TextBox
Text
свойство.
Убедитесь, что вы понимаете разницу между установкой задания (textBox1 = textBox2
) и установкой свойства (textBox1.Text = textBox2.Text
). В первом случае вы перешли от ссылок на два TextBox к двум ссылкам на один и тот же TextBox. Чтобы просто удалить TextBoxes, вам нужен второй случай, который просто копирует значение свойства.
Короче говоря, учитывая это (надеюсь, не слишком запутанное) объяснение, ваш код, как указано, должен стать следующим:
this.textBox1.Text = "";
this.textBox4.Text = this.textBox3.Text = this.textBox2.Text = this.textBox1.Text;
Но, строго говоря, вам гораздо лучше , используя такие решения, как @ Тима Джарвиса или @ Брэндона , которые работают независимо от того, сколько текстовых блоков у вас есть на форме.
Удачи! :)