在 windows 窗体内我有组合框,其中填充了文章,我使用此代码在该组合框中仅显示名称
cmbArticleList.DataSource = GetAllArticles();
cmbArticleList.DisplayMember = "Name";
使用 onclick 按钮我不知道如何将整个对象Article
(它的属性(Code
、、Price
...))复制到 gridview 或同一表单窗口内的其他控件。
尝试在您的文章表单中声明一个全局变量,例如:
private List<Article> list;
因此,在将您的列表绑定到您的列表之前,您ComboBox
首先将其放在全局定义的列表中,然后ValueMember
为您的表中ComboBox
特别添加一个Primary Key
以唯一标识值,例如:
list = GetAllArticles();
cmbArticleList.DataSource = list;
cmbArticleList.DisplayMember = "Name";
cmbArticleList.ValueMember = "Id";
因此,当您单击 a 时,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);
}
现在,这假设您有DataGridView
六 (6) 列。
这个答案向您展示了如何在富文本框控件中显示文章内容。
将文章名称或标识符分配给显示成员属性。
将文章内容分配给 value 成员属性。
订阅组合框的 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();
}