将所选项目的组合框复制到网格视图中
本文关键字:复制 网格 视图 组合 选项 项目 | 更新日期: 2023-09-27 18:20:31
在windows窗体内部,我有一个用文章填充的组合框,我使用以下代码只在该组合框中显示名称
cmbArticleList.DataSource = GetAllArticles();
cmbArticleList.DisplayMember = "Name";
使用onclick按钮,我不知道如何将整个对象Article
(它的属性(Code
,Price
,…))复制到同一窗体窗口中的gridview或其他控件。
试着在你的Form中为文章声明一个全局变量,比如:
private List<Article> list;
因此,在将List绑定到ComboBox
之前,您先将其放在全局定义的列表中,然后为ComboBox
添加ValueMember
,特别是表中的Primary Key
,以唯一标识值,如:
list = GetAllArticles();
cmbArticleList.DataSource = list;
cmbArticleList.DisplayMember = "Name";
cmbArticleList.ValueMember = "Id";
因此,当你点击Button
时,你可以从列表中获得特定的文章,并将其放在DataGridView
上,例如:
private void button1_Click(object sender, EventArgs e)
{
Article selectedArticle = list.Where(Articleid => Articleid.Id == int.Parse(comboBox1.SelectedValue.ToString())).FirstOrDefault();
DataGridViewRow row = (DataGridViewRow)dataGridView1.Rows[0].Clone();
row.Cells[0].Value = selectedArticle.Id;
row.Cells[1].Value = selectedArticle.Id2;
row.Cells[2].Value = selectedArticle.Group;
row.Cells[3].Value = selectedArticle.Code;
row.Cells[4].Value = selectedArticle.Name;
row.Cells[5].Value = selectedArticle.Price;
dataGridView1.Rows.Add(row);
}
现在,假设您有一个包含六(6)列的DataGridView
。
这个答案向您展示了如何在richtextbox控件中显示文章内容。
-
将项目名称或标识符指定给显示成员属性。
-
将文章内容分配给值成员属性。
-
订阅组合框的SelectedItemChanged事件。
-
当SelectedItem更改时,将richtextbox的text属性设置为组合框的SelectedValue属性作为字符串。
public void controlInit() { DataTable articleInfo = new DataTable(); articleInfo.Columns.Add(new DataColumn("Name")); articleInfo.Columns.Add(new DataColumn("Article")); DataRow dataRow1 = articleInfo.NewRow(); DataRow dataRow2 = articleInfo.NewRow(); dataRow1["Name"] = "Article 1"; dataRow1["Article"] = "Article 1 content"; dataRow2["Name"] = "Article 2"; dataRow2["Article"] = "Article 2 content"; articleInfo.Rows.Add(dataRow1); articleInfo.Rows.Add(dataRow2); this.comboBox1.DataSource = articleInfo; this.comboBox1.DisplayMember = "Name"; this.comboBox1.ValueMember = "Article"; this.comboBox1.SelectedIndexChanged += new EventHandler(comboBox1_SelectedIndexChanged); } private void comboBox1_SelectedIndexChanged( object sender, EventArgs e ) { this.richTextBox1.Text = this.comboBox1.SelectedValue.ToString(); }