Оператор `new` в C# используется для создания новых экземпляров классов, а также для скрытия унаследованных членов (методов, свойств и так далее).
Когда вы скрываете свойство с помощью ключевого слова `new`, это приводит к тому, что новое свойство "перекрывает" реализацию этого свойства в базовом классе. Однако, если объект типа производного класса обращается к этому свойству через ссылку на тип базового класса, будет использовано свойство базового класса, а не производного.
Например:
```csharp
public class BaseClass
{
public virtual int MyProperty { get; set; }
}
public class DerivedClass : BaseClass
{
public new int MyProperty { get; set; }
}
...
BaseClass obj = new DerivedClass();
obj.MyProperty = 5;
```
В этом случае, `MyProperty` из `DerivedClass` будет скрыто, и `obj.MyProperty = 5;` установит свойство `MyProperty` из `BaseClass`.
WinForms - это только инструмент для работы с пользовательским интерфейсом, и он работает на основе базовых принципов C#. Если он обращается к свойству через ссылку на базовый класс, он увидит и будет использовать свойство базового класса, даже если производный класс пытается его скрыть.
Вместо использования ключевого слова `new` для переопределения свойств или методов лучше использовать ключевое слово `override`, которое указывает на необходимость заменить реализацию метода или свойства в базовом классе. Затем, при обращении к свойству или методу через ссылку на базовый класс, будет использоваться реализация из производного класса.