C# Winform显示错误

C# Winform显示错误,c#,winforms,user-interface,gridview,datagridview,C#,Winforms,User Interface,Gridview,Datagridview,我在1(或2)年前基于.NETFramework4.5开发了一个Winform应用程序 有一些用户遇到了一个奇怪的错误,控制组没有出现。我从未成功地复制这个bug来修复它。 这种情况很少发生。在约200名用户中,目前只有一名用户遇到此问题 以下是它应该是什么样子: 以下是该问题的情况: 有人有什么建议吗 编辑:在第一个屏幕截图中,您可以看到“选定客户”组控件。当用户单击gridview中的一行时,相关客户将显示在那里,并可以单击“选择此客户”按钮 在第二个屏幕截图中,您可以看到gridvie

我在1(或2)年前基于.NETFramework4.5开发了一个Winform应用程序

有一些用户遇到了一个奇怪的错误,控制组没有出现。我从未成功地复制这个bug来修复它。 这种情况很少发生。在约200名用户中,目前只有一名用户遇到此问题

以下是它应该是什么样子:

以下是该问题的情况:

有人有什么建议吗

编辑:在第一个屏幕截图中,您可以看到“选定客户”组控件。当用户单击gridview中的一行时,相关客户将显示在那里,并可以单击“选择此客户”按钮

在第二个屏幕截图中,您可以看到gridview一直溢出到底部。“所选客户”零件不显示。(但仍会显示“显示隐藏客户”复选框)

这是加载gridview的方法:

private void SetUpCustomersGridView()
    {
        if (chkbx_showHiddenCustomers.Checked)
        {
            dgv_customer.DataSource = _mySqlCeEngine.GetAllCustomers();
        }
        else
        {
            dgv_customer.DataSource = _mySqlCeEngine.GetVisibleCustomers();
        }

        gv_customer.Columns[0].Caption = "ID";
        gv_customer.Columns[1].Caption = "Name";
        gv_customer.Columns[2].Caption = "Address";
        gv_customer.Columns[3].Caption = "City";
        gv_customer.Columns[4].Caption = "Zip Code";
        gv_customer.Columns[5].Caption = "Country Code";
        gv_customer.Columns[6].Caption = "Cluster";
        gv_customer.Columns[7].Caption = "Magellan Party/Account/Site ID/Account Site ID";
        gv_customer.BestFitColumns();

        gv_customer.OptionsFilter.AllowFilterEditor = false;
        gv_customer.OptionsView.ShowAutoFilterRow = true;
        foreach (DevExpress.XtraGrid.Columns.GridColumn col in gv_customer.Columns)
        {
            col.OptionsFilter.AutoFilterCondition = DevExpress.XtraGrid.Columns.AutoFilterCondition.Contains;
        }
    }
这是单击行时显示底部的代码:

private void gv_customer_RowClick(object sender, RowClickEventArgs e)
    {
        try
        {
            DataRowView selectedRow = GetCustomersGridSelectedRow();
            if (selectedRow != null){ btn_selectCustomer.Enabled = true; }
            lbl_valueCustomerID.Text = GetCustomerID(selectedRow); 
            lbl_valueCustomerName.Text = GetCustomerName(selectedRow);
            lbl_valueCustomerAddress.Text = GetCustomerAddress(selectedRow);
            lbl_valueCustomerCity.Text = GetCustomerCity(selectedRow);
            lbl_valueCustomerZipCode.Text = GetCustomerZipCode(selectedRow);
            lbl_valueCustomerCountry.Text = GetCustomerCountryCode(selectedRow);
        }
        catch{}
    }
EDIT2:来自用户的新信息->在安全模式下运行应用程序时,一切正常

谢谢


Hellcat8

对我来说,这听起来像是一种比赛条件。丢失控件的显示是否取决于数据网格中加载的某些数据?如果是这样,未加载的数据可能会导致后续控件的加载失败

你能把加载表单的代码贴出来吗


在DataGrid完成加载后,您可以使用async/await仅执行依赖表单逻辑。

问题是什么?从截图上看不出来。对不起,我忘了那个部分。我编辑了我的帖子,谢谢。只有查看源代码的人才能建议对此进行修复。空的try catch不能帮助您查看是否出现问题。是否可能是客户信息面板位于GridView后面的Z-Ordering问题(假设GridView设置为Dock.Fill)?缺少的部分取决于没有显示任何内容。它只是面板上的一张桌子,有标签。但当用户单击上面gridview中的一行时,它会将数据从gridview填充到下面的不可见标签(默认状态)。