Northwest_worf 2017-07-20 08:55 采纳率: 0%
浏览 2730
已结题

c# datagrid动态添加下拉框

我想在表格中datagrid控件中动态添加下拉框,现有以下代码,但做出来的东西还是无法正确显示,应该怎么做:
namespace DataGridBackColor
{
public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();
    }
    private DataTable dtData;
    ComboBox comboBox = new ComboBox();

    private void Form1_Load(object sender, EventArgs e)
    {
        init_WareHouse();
       // comboBox.Visible = false;
        this.dgv_User.Controls.Add(comboBox);

    }



    private void initData() {
        dtData = new DataTable();
        dtData.Columns.Add("物料名称");
        dtData.Columns.Add("库房地址");
        dtData.Columns.Add("库位地址");
        dtData.Columns.Add("物料编码");
        dtData.Columns.Add("交货数量");
        dtData.Columns.Add("(单位)");

        DataRow drData;
        drData = dtData.NewRow();
        drData[0] ="啊啊啊啊";
        drData[1] = "bbbbbbb";
        drData[2] = "ccccccccc";
        drData[3] = "545455554";
        drData[4] = "1";
        drData[5] = "PC";
        dtData.Rows.Add(drData);
        this.dgv_User.DataSource = dtData;
    }



    private void init_WareHouse() {

         DataTable dtShelf = new DataTable();
        dtShelf.Columns.Add("Value");
        dtShelf.Columns.Add("Name");


            //String[] temp_ShelfInfo = ShelfInfo[i].Split(',');
            DataRow drShelf;
            drShelf = dtShelf.NewRow();
            drShelf[0] ="二级库";
            drShelf[1] ="4545454545";
            dtShelf.Rows.Add(drShelf);

            comboBox.ValueMember = "Value";
            comboBox.DisplayMember = "Name";
            comboBox.DataSource = dtShelf;
            comboBox.DropDownStyle = ComboBoxStyle.DropDownList;
            this.dgv_User.Controls.Add(comboBox);
    }



    private void Serach_Click(object sender, EventArgs e)
    {

        initData();

    }

    private void dgv_User_CurrentCellChanged(object sender, EventArgs e)
    {
        try
        {
            if (this.dgv_User.CurrentCell.ColumnNumber==1)
            {
                MessageBox.Show("ddddd");
                Rectangle rect = new Rectangle(dgv_User.CurrentCell.ColumnNumber, dgv_User.CurrentCell.RowNumber,10,20);
                comboBox.Left = rect.Left;
                comboBox.Top = rect.Top;
                comboBox.Width = rect.Width;
                comboBox.Height = rect.Height;
                comboBox.Visible = true;
            }
        }
        catch
        {
        }

    }
}

}

  • 写回答

2条回答 默认 最新

  • 专家-郭老师 Java领域新星创作者 2017-07-20 09:08
    关注

    你可以在datagrid里直接添加下拉框就行了。你手动添加行的时候就可以设置

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题