>我有一个绑定到DataSource
的TextBox
,当所选行在DataGridView
中更改时,该将文本加载到TextBox
中。
假设TextBox
显示在DataGridView
中选择的特定项目的价格。我的文本框现在将显示"100",尽管我希望它显示"100 美元"。
数据绑定已在 Visual Studio 中完成,而不是以编程方式完成。
我尝试了以下内容,只有在表单加载时才获得成功的结果; 之后它会恢复到没有任何变化。
private void dgvItemList_RowEnter(object sender, DataGridViewCellEventArgs e)
{
textBoxPrice.AppendText(" USD");
}
如何在不必以编程方式加载数据并在那时附加文本的情况下实现此目的?
这应该提供所需的结果:
它将格式化第三列中的值(我添加了此数据表作为示例)。
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 等,如示例所示。