首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Datagridview cell.value =DatagridviewComboboxCell.value

Datagridview cell.value =DatagridviewComboboxCell.value
EN

Stack Overflow用户
提问于 2016-10-06 21:24:22
回答 1查看 982关注 0票数 0

我想看到我在其他单元格中看到的东西,只有在当前行中,我尝试这样做,但没有结果:

代码语言:javascript
运行
复制
dataGridView1.Rows[0].Cells[0].Value = 
   dataGridView1.Rows[0].Cells[1].Value;\\ cell  1 is my comboboxcell 
EN

回答 1

Stack Overflow用户

发布于 2016-10-06 22:25:03

我有一个名为Item的类来添加列表中的项,

项目类;

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

在Form_Load中,我加载了datagridview

代码语言:javascript
运行
复制
private void Form1_Load(object sender, EventArgs e)
        {
            dataGridView1.Columns.Add("test1", "test1");
            DataGridViewComboBoxColumn testCol = new DataGridViewComboBoxColumn();
            testCol.HeaderText = "comboValues";
            dataGridView1.Columns.Add(testCol);
            dataGridView1.Columns.Add("test2", "test1");
            List<Item> items = new List<Item>();
            items.Add(new Item() { Name = "One", Id = 1 });
            items.Add(new Item() { Name = "Two", Id = 2 }); // created two Items 
            var cbo = dataGridView1.Columns[1] as DataGridViewComboBoxColumn; // index of 1 is the comboboxColumn
            cbo.DataSource = items; // setting datasource 
            cbo.ValueMember = "Id";
            cbo.DisplayMember = "Name";
            dataGridView1.Rows.Add("", items[1].Id, "test1");
            dataGridView1.Rows.Add("", items[0].Id, "test2");
            dataGridView1.Rows.Add("", items[1].Id, "test3"); // and test rows
        }

在新的选择之前,我们需要检查哪一行是前一行,所以我们需要使用Row_Leave事件。

代码语言:javascript
运行
复制
int previousRowIndex = 0; // a variable to keep the index of row
        private void dataGridView1_RowLeave(object sender, DataGridViewCellEventArgs e)
        {
            previousRowIndex = e.RowIndex;
        }

主要的活动是SelectionChanged,

代码语言:javascript
运行
复制
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
        {
            dataGridView1.Rows[previousRowIndex].Cells[0].Value = ""; // first set the previous row's first cell value empty string.
            DataGridViewComboBoxCell comboCell = dataGridView1.CurrentRow.Cells[1] as DataGridViewComboBoxCell; 
            dataGridView1.CurrentRow.Cells[0].Value = comboCell.EditedFormattedValue; // then set the first cell's value as the combobox's selected value.
        }

结果;

希望能帮上忙

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39905848

复制
相关文章

相似问题

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