ostatnio pracowałem nad Windows Form ProjectVisual Studio 2010, kiedy zaczął pokazywać to dziwne zachowanie. Ilekroć otwieram formularz okna w projektancie, tworzona jest pusta kontrolka i zawiesza się na środku ekranu.
Jedyną używaną „niestandardową” funkcją, rozszerzam każdą kontrolę o kontrolę nadrzędnego użytkownika w następujący sposób
public partial class MainUserControl : UserControl
{
...
}
public partial class UserControl : MainUserControl
{
...
}
Wszelkie wskazówki, jak to naprawić?
Odpowiedzi:
1 dla odpowiedzi № 1Trudno jest podać kompleksowewyjaśnienie, w jaki sposób to rozwiązałem, ale wydaje się, że jest to jeden z wielu błędów projektanta, które mogą ostatecznie pojawić się podczas rozszerzania kontroli użytkownika z innej kontroli użytkownika.
Po utworzeniu prostszego konstruktora w celu „oszukania” projektanta wyskakujące okienko zniknęło.
Zawsze staraj się mieć coś takiego
public class BaseUserControl : UserControl
{
protected BaseUserControl(... [many params passed])
{
...
}
protected BaseUserControl()
{
...
}
}
i unikaj
protected BaseUserControl() : BaseUserControl(... [many params passed])
{
...
}