我的窗口表单应用程序中有2个表单
frmDashboad 和 frmCompany 。
在frmDashboad表单上有一个按钮,单击该按钮,我会将frmCompany显示为对话框。
这是我的代码。
private void btnCompany_Click(object sender, EventArgs e)
{
new frmCompany().ShowDialog();
}
我的frmCompany表格。
public partial class frmCompany : SfForm
{
public frmCompany()
{
InitializeComponent();
}
}
现在,当我关闭frmCompany并再次单击按钮以再次显示frmCompany对话框时,如果我连续重复此过程5-6次,则会引发异常。
'Cross-thread operation not valid: Control '' accessed from a thread other than the thread it was created on.'
这是完整的堆栈跟踪。
at System.Windows.Forms.Control.get_Handle()
at System.Windows.Forms.Control.get_InternalHandle()
at System.Windows.Forms.Control.DestroyHandle()
at System.Windows.Forms.Control.Dispose(Boolean disposing)
at System.Windows.Forms.Form.Dispose(Boolean disposing)
at System.ComponentModel.Component.Dispose()
at Syncfusion.Windows.Forms.SfToolTip.Dispose(Boolean disposing)
at System.ComponentModel.Component.Dispose()
at Syncfusion.WinForms.Controls.SfForm.Dispose(Boolean disposing)
at InventorySystem.UI.frmCompany.Dispose(Boolean disposing) in D:\Test\Code Sample\inventory-system\InventorySystem\InventorySystem.UI\frmCompany.Designer.cs:line 20
at System.ComponentModel.Component.Finalize()
如果我将SfForm
替换为Form
,则不会发生异常。
答案 0 :(得分:0)
您只需要为Form
或sfDatagrid
设置以下属性false。