winform的自定义控件,如何在DesignMode时预设数据并显示?

风之浪漫 2025-04-17 16:48:33

winform的自定义控件,通过List管理里边的Textbox。通过代码在运行时动态加载没有问题。但是在DesignMode进行预设就会各种报错。

public partial class TestControl : UserControl
    {
        private List<TestItem> items;
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), MergableProperty(false)]
        public List<TestItem> Items
        {
            get { return items; }
            set
            {
                Init(value);
            }
        }
        public TestControl()
        {
            InitializeComponent();
            items = new List<TestItem>();
        }
        private void Init(List<TestItem> value)
        {
            if (value == null || value.Count == 0) return;
            int index = 0;
            TextBox tb = null;
            foreach (TestItem ti in value)
            {
                tb = new TextBox();
                tb.Text = ti.Value;
                tb.Width = 100;
                tb.Left = index * 100;
                this.Controls.Add(tb);
                index++;
            }
            items = value;
        }
    }
    [Serializable]
    public class TestItem
    {
        public TestItem() { }
        public string Text { get; set; }
        public string Value { get; set; }
    }

 

...全文
173 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

111,082

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧