首页 新闻 会员 周边 捐助

dataGridView 添加下拉框数据列

0
悬赏园豆:100 [已解决问题] 解决于 2021-04-20 15:30


数据源是上图对象的集合 要绑定key value 这样的数据形式value是数组

大致效果图

小小怪l的主页 小小怪l | 初学一级 | 园豆:139
提问于:2021-01-14 11:30
< >
分享
最佳答案
0

已使用html方式处理简单很多

小小怪l | 初学一级 |园豆:139 | 2021-04-20 15:29
其他回答(3)
0
收获园豆:30
E行者 | 园豆:1811 (小虾三级) | 2021-01-14 11:47

谢谢你的回答 可惜英文难以看懂 并不能解决我的问题

支持(0) 反对(0) 小小怪l | 园豆:139 (初学一级) | 2021-01-14 12:01
0

public partial class Form1 : Form
{

    Headers header = new Headers();

    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        
        header.item = new List<Items>();

        Items item = new Items();
        item.key = "湖南";
        item.values = new List<string>() { "长沙", "张家界", "吉首" };

        Items item2 = new Items();
        item2.key = "湖北";
        item2.values = new List<string>() { "武汉", "黄冈" };

        Items item3 = new Items();
        item3.key = "江西";
        item3.values = new List<string>() { "南昌", "赣州", "新余" };

        header.item.Add(item);
        header.item.Add(item2);
        header.item.Add(item3);


        foreach (var itemKey in header.item)
        {
            comboBox1.Items.Add(itemKey.key);

        }
        comboBox1.SelectedIndex = 0;


        foreach (var itemKey in header.item)
        {
            if (comboBox1.Text == itemKey.key)
            {
                foreach (var itemValues in itemKey.values)
                {
                    comboBox2.Items.Add(itemValues);
                }
            }
        } 
        comboBox2.SelectedIndex = 0;
    }

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        comboBox2.Items.Clear();
        foreach (var itemKey in header.item)
        {
            if (comboBox1.Text == itemKey.key)
            {
                foreach (var itemValues in itemKey.values)
                {
                    comboBox2.Items.Add(itemValues);
                }
            }
        }

        comboBox2.SelectedIndex = 0;
    }
}

不知道是不是你想要的效果

收获园豆:30
阿鱿爱吃草莓 | 园豆:232 (菜鸟二级) | 2021-01-15 09:19

如果能把他放到DataGridView里面就完美了

支持(0) 反对(0) 小小怪l | 园豆:139 (初学一级) | 2021-01-15 09:26

@阿鱿爱吃草莓: 什么意思 不是很明白

支持(0) 反对(0) 小小怪l | 园豆:139 (初学一级) | 2021-01-15 14:14

@小小怪l: 貌似挺麻烦的(⊙o⊙)…

支持(0) 反对(0) 阿鱿爱吃草莓 | 园豆:232 (菜鸟二级) | 2021-01-15 16:27
0

我这个用DEV控件写的,与DataGridView不一样

private void gridViewX_CustomRowCellEdit(object sender, CustomRowCellEditEventArgs e)
{
DevExpress.XtraGrid.Views.Grid.GridView gv = sender as DevExpress.XtraGrid.Views.Grid.GridView;
if (e.Column.FieldName != "参数值")
{
return;
}
string fieldName = gv.GetRowCellValue(e.RowHandle, gv.Columns["类型"]).ToString();
if (fieldName != "")
{
RepositoryItemGridLookUpEdit luk = new RepositoryItemGridLookUpEdit();
luk.DisplayMember = "描述";
luk.ValueMember = "值";
string enumName = gv.GetRowCellValue(e.RowHandle, gv.Columns["类型"]).ToString();
IList<EnumTable> list = PublicClass.EnumDatatable().Where(c => c.名称 == enumName).ToList();
luk.DataSource = list;
luk.View.DataSourceChanged += View_DataSourceChanged;
e.RepositoryItem = luk;
}
else
{
RepositoryItemTextEdit txt = new RepositoryItemTextEdit();
txt.NullText = gv.GetRowCellValue(e.RowHandle, gv.Columns["参数值"]).ToString();
e.RepositoryItem = txt;
}
}

收获园豆:40
tanshijiazhu | 园豆:242 (菜鸟二级) | 2021-01-15 16:05

是这个效果 这个控件在哪找的 要钱吗

支持(0) 反对(0) 小小怪l | 园豆:139 (初学一级) | 2021-01-15 16:12

每一行都有自己不同的combox

支持(0) 反对(0) 小小怪l | 园豆:139 (初学一级) | 2021-01-15 16:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册