解决 定制组合框

伊斯梅尔

成员
已加入
2020年3月20日
留言内容
18
编程经验
1-3
你好。我有一个带有用客户名称填充的组合框的表单。但是要在表中插入记录,我使用客户端代码。我想要做的是创建一个带有额外属性的特殊组合框,称为Cods,将在同时使用名称填充ComboBox Items的同时填充该组合框。因此,当我选择一个用户名时,则可以使用Combobox.SelectedIndex来同步组合框的名称和代码。我已经开始创建此用户控件:
C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.ComboBox;

namespace Tools
{
    public partial class BdComboBox : UserControl
    {
        public BdComboBox()
        {
            InitializeComponent();
        }
        public ObjectCollection Cods { get; set; }
        public void Sincroniza()
        {
            int index = this.comboBox1.SelectedIndex;
        }
    }
}
我不知道该怎么办是如何使用变量索引来获取Cods属性中的对应值。有谁能够帮我?
谢谢。
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,568
地点
悉尼,澳大利亚
编程经验
10+
如果我对您的理解正确,那么标准 组合框 控件已经可以执行您想要的操作。您只需要适当地绑定它即可。这通常是通过 数据表 从数据库填充,但也可以使用数组或集合来完成。这是一个使用 数据表:
C#:
var table = new DataTable();

using (var adapter = new SqlDataAdapter("SELECT PersonId, FullName FROM Person", "connection string here"))
{
    adapter.Fill(table);
}

personComboBox.DisplayMember = "FullName";
personComboBox.ValueMember = "PersonId";
personComboBox.DataSource = table;
DisplayMember 指定属性或列以从中获取值以显示在控件中。这 价值会员 指定属性或列,以从中获取值以通过公开 选定值。运行该代码后,用户可以选择一个 全名 从列表中,您可以获得相应的 人物编号 来自 选定值组合框。您还可以分配一个 人物编号 的价值 选定值 选择相应的 全名 在列表中。此机制用于 数据网格视图,在ID之间传递ID 价值 单元和 选定值 编辑控件。您可以使用具有属性的项目列表来执行相同的操作,例如
C#:
var people = new List<Person>
                {
                    new Person {PersonId = 1, FullName = "Peter Smith"},
                    new Person {PersonId = 2, FullName = "Paul Jones"},
                    new Person {PersonId = 3, FullName = "Mary Anderson"},
                };

personComboBox.DisplayMember = "FullName";
personComboBox.ValueMember = "PersonId";
personComboBox.DataSource = people;
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,568
地点
悉尼,澳大利亚
编程经验
10+
顺便说一句,如果您要创建一个自定义 组合框,您将继承 组合框, 不是 用户控件。用户控件用于您要创建一组可以用作一个单元的子控件的情况,例如一群 标签文字框 可以显示和编辑单个记录的多个字段。如果只想更改现有控件的行为而不更改UI,则只需继承该控件并添加适当的代码即可。那可能是添加属性或覆盖方法。
 
最佳 底部