0

我有一个TextBox绑定到 a当所选行在 a 中更改时DataSource将文本加载到.TextBoxDataGridView

假设TextBox显示在 中选择的某个项目的价格DataGridView。我的文本框现在将显示“100”,尽管我希望它显示“100 USD”。

数据绑定是在 Visual Studio 中完成的,而不是以编程方式完成的。

我尝试了以下方法,只有在表单加载时才成功;之后它又回到了没有任何改变的状态。

   private void dgvItemList_RowEnter(object sender, DataGridViewCellEventArgs e)
    {
        textBoxPrice.AppendText(" USD");
    }

如何在不必以编程方式加载数据并在此时附加文本的情况下实现这一点?

4

1 回答 1

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,依此类推,如示例。

于 2013-10-30T01:35:40.063 回答