如何在C#中的Windows窗体中添加(或创建)字符串集合编辑器控件?

如何在C#中的Windows窗体中添加(或创建)字符串集合编辑器控件?,c#,winforms,visual-studio-2017,.net-4.7.2,C#,Winforms,Visual Studio 2017,.net 4.7.2,我用C#开发了一个Windows窗体应用程序。在应用程序中,我有一个表单,在这个表单中,我想创建一个类似于字符串表/列表的东西,以便能够为用户提供输入或删除其字符串的功能 我想要实现的功能类似于当您进入Properties->Items->[(Collection)…]时,您可以在ComboBox控件中找到的字符串集合编辑器: Visual Studio的工具箱中是否已存在此控件?我找不到类似的东西 如果没有,我如何创建它 (此外,作为其功能的扩展,我还想在每个字符串条目中添加一个“删除”按钮

我用C#开发了一个Windows窗体应用程序。在应用程序中,我有一个表单,在这个表单中,我想创建一个类似于字符串表/列表的东西,以便能够为用户提供输入或删除其字符串的功能

我想要实现的功能类似于当您进入Properties->Items->[(Collection)…]时,您可以在ComboBox控件中找到的字符串集合编辑器:

Visual Studio的工具箱中是否已存在此控件?我找不到类似的东西

如果没有,我如何创建它

(此外,作为其功能的扩展,我还想在每个字符串条目中添加一个“删除”按钮,以便用户能够删除表中的条目。下一步如何实现这一点?)


我使用的是Visual Studio Enterprise 2017-v15.9.14,我的应用程序的目标是.Net Framework 4.7.2。

一种简单而直接的方法是创建一个DataGridView,它没有行和列标题和边框来保存字符串

DataGridViewTextBoxColumn tc = new DataGridViewTextBoxColumn();
tc.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
dataGridView1.Columns.Add(tc);

// Hide row&column header
dataGridView1.ColumnHeadersVisible = false;
dataGridView1.RowHeadersVisible = false;
// Hide border
dataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.None;
测试结果,


考虑一个。表单设计器中的组合框项编辑器是一个简单的多行文本框控件。这是字符串集合(字符串数组)使用的标准编辑器。您只需要将一个属性声明为
public string[]MyStringArrayProperty{get;set;}
。或者为(兼容的)集合指定此编辑器类型。是在运行时还是在设计时显示编辑器?班级类型是什么?(控件?组件?普通类?)属性类型是什么?(
string[]
List
,…)