我有TextBox
绑定到DataSource
,当所选行在TextBox
中更改时,DataGridView
会将文本加载到TextBox
。
假设DataGridView
显示在 private void dgvItemList_RowEnter(object sender, DataGridViewCellEventArgs e)
{
textBoxPrice.AppendText(" USD");
}
中选择的特定商品的价格。我的文本框现在将显示“100”,但我希望它显示“100美元”。
数据绑定已在Visual Studio中完成,而不是以编程方式完成。
我尝试了以下内容,只有在表单加载时才能获得成功;之后,它又回到了没有任何变化的地方。
{{1}}
如何在不必以编程方式加载数据并在该点附加文本的情况下实现此目的?
答案 0 :(得分:0)
这应该提供所需的结果:
它将格式化第三列的值(我添加了这个数据表作为示例)。
private void Form1_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("Column1");
dt.Columns.Add("Column2");
dt.Columns.Add("Column3");
dt.Rows.Add(3, 1,35);
dt.Rows.Add(1, 3, 62);
BindingSource s = new BindingSource();
s.DataSource = dt;
this.dataGridView1.DataSource = s;
Binding b = new Binding("Text", s, "Column3");
b.Format += new ConvertEventHandler(b_Format);
textBox1.DataBindings.Add(b);
}
void b_Format(object sender, ConvertEventArgs e)
{
e.Value = e.Value.ToString() + " USD";
}
在你的情况下,将绑定源绑定到数据源,然后将绑定源绑定到datagridview,依此类推。