Мой определенный UserControl вызывает сбой на VS2019 - PullRequest
0 голосов
/ 14 апреля 2019

Я пытаюсь создать пользовательский элемент управления с кодом ниже, и каждый раз, когда я добавляю его в мою основную форму, VS завершается сбоем без каких-либо следов или исключений

Проблема началась при попытке вставить:

[Browsable(true)]
[EditorBrowsable(EditorBrowsableState.Always)]
[Category("u4sSearchBox")]

Но я удалил его, и проблема все еще существует

Я пытался удалить папку bin, obj и .vs, но безрезультатно Я пытался swtich к VS2017, но бесполезно

MethodHolderBasic.cs

    public partial class MethodHolderBasic : UserControl
    {
        public Bitmap ExpandedImgage;
        public Bitmap CollaspedImage;
        public bool Expanded
        {
            get
            {
                return Expanded;
            }
            set
            {
                Expanded = value;
                if (Expanded)
                    pbExpand.Image = new Bitmap(ExpandedImgage, 22, 22);
                else
                    pbExpand.Image = new Bitmap(CollaspedImage, 22, 22);
            }
        }
        public MethodHolderBasic()
        {
            InitializeComponent();
            pbDelete.Image = new Bitmap(pbDelete.Image, 22, 22);
            pbExpand.Image = new Bitmap(pbExpand.Image, 22, 22);
        }
    }

1 Ответ

0 голосов
/ 14 апреля 2019

Вы используете свойство Expanded в качестве возвращаемого значения в геттере Expanded и устанавливаете его в установщике.Это вызывает проблему переполнения стека, поэтому ваша программа аварийно завершает работу.

Другая проблема (возможно, нет): из кода не похоже, что вы устанавливаете Expanded Image и CollaspedImage, что приведет к исключению ArgumentNullException.

У меня работает этот код:

public partial class MethodHolderBasic : UserControl
{
    public Bitmap ExpandedImgage;
    public Bitmap CollaspedImage;

    bool _expanded = false;
    [Browsable(true)]
    [EditorBrowsable(EditorBrowsableState.Always)]
    [Category("u4sSearchBox")]
    public bool Expanded
    {
        get
        {
            return _expanded;
        }
        set
        {
            _expanded = value;
            if (_expanded)
                pbExpand.Image = new Bitmap(ExpandedImgage, 22, 22);
            else
                pbExpand.Image = new Bitmap(CollaspedImage, 22, 22);
        }
    }

    public MethodHolderBasic()
    {
        InitializeComponent();

        pbDelete.Image = new Bitmap(pbDelete.Image, 22, 22);
        pbExpand.Image = new Bitmap(pbExpand.Image, 22, 22);

        // Initialize ExpandedImgage and CollaspedImage
        ExpandedImgage = new Bitmap(pbDelete.Image, 22, 22);
        CollaspedImage = new Bitmap(pbExpand.Image, 22, 22);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...