【问题标题】:Refreshing data in datagridview and picture box at same time C#同时刷新datagridview和图片框中的数据C#
【发布时间】:2014-09-09 20:23:05
【问题描述】:

快速提问....

在我的主窗体上是一个使用 tableadapter 填充的 datagridview。在我的 form2 上,它将数据(包括存储为二进制数据的图片)插入到 datagridview 所绑定的数据库表中。

在主窗体上有一个刷新按钮,它将重新填充 datagridview。这就是我的问题开始的地方。我有一个图片框,当我选择一行时,它将显示存储在数据库中的该条目的照片。但是我通过设计师使用以下方式绑定了图片框:

 this.selectedFirearmPictureBox.DataBindings.Add(new System.Windows.Forms.Binding("image", this.firearmsTableBindingSource, "image", true));

当我刷新数据时,一切都很好,除了当我选择其他行时图片框不再更新。如果我关闭应用程序并再次运行调试器,它工作正常。难道是我需要刷新绑定源?

【问题讨论】:

  • 当您在网格中选择一行时,请尝试设置绑定源的位置。
  • 我已经看了一两分钟了。您能否详细说明或提供一个简短的示例?
  • 你去,请检查答案以了解它是否对你有帮助。

标签: c# winforms datagridview refresh picturebox


【解决方案1】:

您的图片框绑定到整个绑定源而不是一项,您需要调整绑定源位置以便图片框可以更新,像这样(这是一种方式):

private void dataGridView1_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
    firearmsTableBindingSource.Position = e.RowIndex;
}

RowHeaderMouseClick 事件在您选择带有标题的行时触发,这应该可以解决您的问题。

【讨论】:

  • 我相信它朝着正确的方向发展。但是,当我删除将图片框绑定到整个源的数据绑定并放入上面的代码时,什么也没有发生。
  • 您不删除绑定只需添加 RowHeaderMouseClick 的事件处理程序并将此代码放在那里,将图片框绑定留在那里。我提出的解决方案不是用此处理程序替换图片框绑定,它要保留图片框绑定并添加此代码。
  • 特里。我爱你。像魅力一样工作!答案可能很简单,但对于尝试学习 C# 的新手来说,这太棒了。标记为答案。
猜你喜欢
  • 1970-01-01
  • 2010-09-20
  • 1970-01-01
  • 1970-01-01
  • 2020-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多