Обновить местоположение метки в C #?

Да, == плохо для сравнения строк (любые объекты действительно, если вы не знаете, что они канонические). == просто сравнивает ссылки на объекты. .equals() тесты для равенства. Для строк часто они будут такими же, но, как вы обнаружили, это не гарантируется всегда.

13
задан Jim Fell 10 June 2016 в 17:16
поделиться

5 ответов

Используйте свойство Left , чтобы изменить координату X метки

objectA.Left = 100;
17
ответ дан 1 December 2019 в 17:52
поделиться

Свойство Location имеет тип Point, который является типом значения. Следовательно, свойство возвращает копию значения местоположения, поэтому установка X в этой копии не повлияет на метку. Компилятор видит это и генерирует ошибку, чтобы вы могли ее исправить. Вместо этого вы можете сделать это:

objectA.Location = new Point((int)A.position, objectA.Location.Y);

(вызов Refresh бесполезен)

19
ответ дан 1 December 2019 в 17:52
поделиться

Мне это подходит

this.label1.Location = new Point(10, 10);

Вам даже не нужно вызывать Refresh или SuspendLayout и т. Д.

, так что это должно вам помочь

this.label1.Location = new Point((int)A.position, (int)A.otherpos);
9
ответ дан 1 December 2019 в 17:52
поделиться
objectA.Location = new Point((int)A.position, objectA.Location.Y);
objectA.Refresh();

Местоположение - это не переменная, а только общедоступная собственность. Изменение переменных через свойства - плохая идея, если только у вас нет событий, обновляющих родительский объект.

0
ответ дан 1 December 2019 в 17:52
поделиться

имя объекта.Location = System.Drawing.Point (100,100);

1
ответ дан 1 December 2019 в 17:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: