【问题标题】:Fill (refresh) gridview on Form2 when FocusedRowChanged on Form1当 Form1 上的 FocusedRowChanged 时,在 Form2 上填充(刷新)gridview
【发布时间】:2015-12-14 06:35:13
【问题描述】:

Form1 我做FocusedRowChanged 事件,我想用IDForm2 上填充GridView,但是我在Form2 上的GridView 没有刷新和数据没有加载,我做错了什么?

Form1:

private void grvAsmenys_FocusedRowChanged(object sender,
        DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
{        
    Form2 frmForm2 = new Form2();
    frmForm2.taKlaus.FillByID(frmForm2.dsKlaus.Klaus,
        Convert.ToInt32(Id()));
}

public object Id()
{
    var id = grvAsm.GetRowCellValue(grvAsm.FocusedRowHandle, "ID");
    return id;
}

【问题讨论】:

  • 什么是FillByID 方法?您可以将代码添加到您的问题中吗?
  • FillByID = SELECT ID, Klaus1, Klaus2 FROM Klaus WHERE (ID = @ID)
  • 信息不足。您可以复制方法的整个代码并将其添加到您的问题中吗?使用问题下方的«编辑»链接。
  • 我用 TableAdapterQuery 配置向导做这个方法,我需要复制什么?
  • 好的。我认为问题不属于这种方法。

标签: c# gridview devexpress


【解决方案1】:

问题是每次更改焦点时都会创建新的Form2 类实例。相反,您需要扩大 frmForm2 变量的范围以获取当前的 Form2 实例。您可以将其推广到现场。
例如:

private Form2 _frmForm2; //Field for holding the current Form2 instance.

public void ShowForm2()
{
    _frmForm2 = new Form2();
    _frmForm2.Show();
}

private void grvAsmenys_FocusedRowChanged(object sender,
        DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
{        
    //Form2 frmForm2 = new Form2();
    //Use the field instead.
    _frmForm2.taKlaus.FillByID(_frmForm2.dsKlaus.Klaus,
        Convert.ToInt32(Id()));
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 1970-01-01
    • 2012-12-08
    相关资源
    最近更新 更多