c# - Usercontrol 包含一个组合框,但在设计时设置的 Items 不在运行时

标签 c# windows combobox custom-controls items

我有一个包含文本框和组合框的用户控件。我已将组合框的 Item 属性暴露给用户控件的客户端,因此:

public System.Windows.Forms.ComboBox.ObjectCollection Item
{
    get { return baseComboBox.Items; }
}

我将用户控件添加到 Windows 窗体,并使用窗体设计器中的属性值编辑器设置项目列表。然后我运行应用程序,组合框的下拉列表是空的。为了确认设计时添加的项目不在列表中,我在客户端表单中添加了以下两行代码:

textBox1.Text = userControl1.Items.Count.ToString();
userControl1.Items.Add("Test item");

当我重新运行应用程序时,测试框显示计数为 0(零),并且用户控件的下拉列表仅包含“测试项”。

考虑到在设计时引用的用户控件实例可能与在运行时引用的实例不同,我在设计时设置了用户控件的 BackColor 属性。当我重新运行应用程序时,用户控件的 BackColor 是我在设计器中设置的。

关于为什么 Items 的设计时设置没有延续到运行时的任何想法?

最佳答案

你需要一个属性:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public ComboBox.ObjectCollection Item {
  get { return baseComboBox.Items; }
}

关于c# - Usercontrol 包含一个组合框,但在设计时设置的 Items 不在运行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27004541/

相关文章:

c# - 正则表达式检测字符串中的Javascript

python - 为什么在 Windows Vista 64 中使用 easy_install 和 Python 2.7 安装 Pylons 1.0 的最后一行会出现错误?

mysql - 组合框将依赖于另一个组合框的值

delphi - 如何在 Delphi 7 中创建具有两列(一列隐藏)的组合框?

c# - Log4Net/C# - 禁用默认日志记录

c# - 表达式引用了不属于 ISearchIndexClient.Documents.Search 方法的模拟对象的方法

c# - 异步架构

python - 在 Windows 上启动时运行 Python 程序

c# - 无需单独安装 GTK# 的 GTK# .NET 应用程序

java - RichFaces - 组合框中包含字母或组合的建议