首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >表示字符错误的列表

表示字符错误的列表
EN

Stack Overflow用户
提问于 2013-10-13 20:22:35
回答 2查看 77关注 0票数 0

我想知道是否可以在这里添加名称而不是数字,以便在文本框中进一步显示它们:

代码语言:javascript
运行
复制
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        List<int> names = new List<int>();
        private void Form1_Load(object sender, EventArgs e)
        {
            nmstxtbx.Text = "";

            combo_list.Items.Add("Ahmed");
            names.Add("Atef");

            combo_list.Items.Add("Omar");
            names.Add(5000);

            combo_list.Items.Add("Mohamed");
            names.Add(4000);
        }
        public Form1()
        {
            InitializeComponent();
        }

        private void combo_list_SelectedIndexChanged(object sender, EventArgs e)
        {
            nmstxtbx.Text = names[combo_list.SelectedIndex].ToString();
        }
    }
}

所以请你是一个真正的菜鸟,有人能帮忙吗?我还在问,如果我想要创建一个包含一些名字的组合框,我想让用户输入其中一个条目,当他按enter键时,名字消失了,有人能帮我吗?

EN

Stack Overflow用户

发布于 2013-10-13 21:09:48

如果您需要名称和它们的编号相互关联,那么拥有一个将这些信息保存在一起的类要容易得多,例如,一个NameDTO类包含一个Id和一个Name

代码语言:javascript
运行
复制
public class NameDTO
{
    public int   Id { get; set; }
    public string Name { get; set; }
}

现在可以在表单中使用该类的列表来保存所有名称:

代码语言:javascript
运行
复制
List<NameDTO> names = new List<NameDTO>();

在form事件中,您将填充列表并将其分配给组合框的Datasource。您可以使用组合框的DisplayMemberValueMember属性来指示您希望从NameDTO中看到哪些属性:

代码语言:javascript
运行
复制
private void Form1_Load(object sender, EventArgs e)
{
    names.Add( new NameDTO{ Id =2000, Name = "Ahemd"});
    names.Add(new NameDTO { Id = 5000, Name = "Omar" });
    names.Add(new NameDTO { Id = 4000, Name = "Mohamed" });

    comboBox1.DataSource = names;
    comboBox1.DisplayMember = "Name";
    comboBox1.ValueMember = "Id";
}

在您的SelectedIndexChanged事件中,您现在可以在combobox的SelectedItem属性中获得一个NameDTO对象。

代码语言:javascript
运行
复制
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{

   var si = (NameDTO) comboBox1.SelectedItem;
   nmstxtbx.Text = si.Name;
   // or the number is in  si.Id
} 

若要删除所选项目,请使用它的单击事件按钮:

代码语言:javascript
运行
复制
private void button2_Click(object sender, EventArgs e)
{
    names.Remove((NameDTO)comboBox1.SelectedItem);
}
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19349853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档