C# Winform显示错误
我在1(或2)年前基于.NETFramework4.5开发了一个Winform应用程序 有一些用户遇到了一个奇怪的错误,控制组没有出现。我从未成功地复制这个bug来修复它。 这种情况很少发生。在约200名用户中,目前只有一名用户遇到此问题 以下是它应该是什么样子: 以下是该问题的情况: 有人有什么建议吗 编辑:在第一个屏幕截图中,您可以看到“选定客户”组控件。当用户单击gridview中的一行时,相关客户将显示在那里,并可以单击“选择此客户”按钮 在第二个屏幕截图中,您可以看到gridview一直溢出到底部。“所选客户”零件不显示。(但仍会显示“显示隐藏客户”复选框) 这是加载gridview的方法:C# Winform显示错误,c#,winforms,user-interface,gridview,datagridview,C#,Winforms,User Interface,Gridview,Datagridview,我在1(或2)年前基于.NETFramework4.5开发了一个Winform应用程序 有一些用户遇到了一个奇怪的错误,控制组没有出现。我从未成功地复制这个bug来修复它。 这种情况很少发生。在约200名用户中,目前只有一名用户遇到此问题 以下是它应该是什么样子: 以下是该问题的情况: 有人有什么建议吗 编辑:在第一个屏幕截图中,您可以看到“选定客户”组控件。当用户单击gridview中的一行时,相关客户将显示在那里,并可以单击“选择此客户”按钮 在第二个屏幕截图中,您可以看到gridvie
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填充到下面的不可见标签(默认状态)。