#c# #user-controls #visual-studio-2019
#c# #пользовательские элементы управления #visual-studio-2019
Вопрос:
Я использую Visual Studio 2019, версия 16.8.2, у меня есть пользовательская библиотека .net Core 5. Чтобы диагностировать проблему в существующем проекте, преобразованном в Core 5, я создал простой пользовательский элемент управления:
using System;
using System.ComponentModel;
using System.Windows.Forms;
namespace WinFormsControlLibrary2
{
public partial class UserControl1 : UserControl
{
private TwoElems[] mynums = { new TwoElems(), new TwoElems() };
public UserControl1()
{
InitializeComponent();
}
[Browsable(true), NotifyParentProperty(true), EditorBrowsable(EditorBrowsableState.Always)]
[Category("Log control parameters")]
[DisplayName("array property")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public TwoElems[] MyNums
{
get { return mynums; }
set { mynums = value; }
}
}
[TypeConverter(typeof(ExpandableObjectConverter))]
public class TwoElems
{
[Browsable(true), NotifyParentProperty(true), EditorBrowsable(EditorBrowsableState.Always)]
public int sz { get; set; }
public TwoElems()
{
sz = 30;
}
}
}
Это нормально компилируется, и проект, содержащий этот пользовательский элемент управления, добавляется в панель инструментов.
Затем элемент управления добавляется в форму, и щелчок по многоточиям (…) открывает страницу вложенных свойств для MyNums, отображаются элементы.
Изменение значения любого элемента вызывает всплывающее окно в таблице свойств со словами: значение свойства недопустимо, а деталь: ссылка на объект не установлена для экземпляра объекта.
Нажатие кнопки OK для закрытия всплывающего окна и повторный анализ свойства массива показывают, что измененные значения записываются обратно в свойство.
Такой код (свойства массива) отлично работал в .net Framework и / или более ранней версии Visual Studio.
Есть идеи о том, как определить, что является причиной этого?
С уважением, Оз
Комментарии:
1. Поскольку проблема возникает только в .NET5, вы можете сообщить о проблеме сообществу разработчиков .
2. Спасибо тебе, Кайл, за ссылку. Я сообщил об этом.