問題
我目前正在處理一個表單,其中 datagridview 單元格從syncfusion 的multicolumncombobox 工具獲取它的輸入,并且一切都按預期作業,直到我洗掉 multicolumncombobox 的文本框然后選擇其他內容
這是我遵循的順序
- 我洗掉了多列組合框文本框的文本
- 我從組合框中選擇一個新值(SelectedValueChanged 事件)
- 拋出例外(盡管在 try/catch 塊中,但未處理的例外)
例外
![在 TextChanged 事件之后訪問組合框專案會導致物件已處置例外 [C# .NET 4.6]](https://img.uj5u.com/2022/03/15/9a13fbcd52434dfb9578d95f75e4e672.png)
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'ComboBoxPopupContainer'.
at System.Windows.Forms.Control.CreateHandle()
at System.Windows.Forms.Control.get_Handle()
at System.Windows.Forms.Control.PointToClientInternal(Point p)
at System.Windows.Forms.Control.PointToClient(Point p)
at Syncfusion.Windows.Forms.Tools.ComboDropDown.ComboDropDown_Deactivate(Object sender, EventArgs e)
at System.Windows.Forms.Form.OnDeactivate(EventArgs e)
at System.Windows.Forms.Form.set_Active(Boolean value)
at System.Windows.Forms.Form.DeactivateMdiChild()
at System.Windows.Forms.Form.WmMdiActivate(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4470.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
MDIForm
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///D:/Project/bsp_winforms/bsp_winforms/bin/Debug/MDIForm.exe
----------------------------------------
Syncfusion.Licensing
Assembly Version: 19.4460.0.53
Win32 Version: 19.4460.0.53
CodeBase: file:///D:/Project/bsp_winforms/bsp_winforms/bin/Debug/Syncfusion.Licensing.DLL
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4400.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4360.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4390.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
Syncfusion.Shared.Base
Assembly Version: 19.4460.0.53
Win32 Version: 19.4460.0.53
CodeBase: file:///D:/Project/bsp_winforms/bsp_winforms/bin/Debug/Syncfusion.Shared.Base.DLL
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4190.0 built by: NET48REL1LAST_B
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4470.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
Syncfusion.Tools.Windows
Assembly Version: 19.4460.0.53
Win32 Version: 19.4460.0.53
CodeBase: file:///D:/Project/bsp_winforms/bsp_winforms/bin/Debug/Syncfusion.Tools.Windows.DLL
----------------------------------------
Syncfusion.Grid.Windows
Assembly Version: 19.4460.0.53
Win32 Version: 19.4460.0.53
CodeBase: file:///D:/Project/bsp_winforms/bsp_winforms/bin/Debug/Syncfusion.Grid.Windows.DLL
----------------------------------------
Accessibility
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
System.Data
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4455.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
System.Numerics
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll
----------------------------------------
UIAutomationProvider
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4470.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/UIAutomationProvider/v4.0_4.0.0.0__31bf3856ad364e35/UIAutomationProvider.dll
----------------------------------------
WindowsBase
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4470.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/WindowsBase/v4.0_4.0.0.0__31bf3856ad364e35/WindowsBase.dll
----------------------------------------
UIAutomationTypes
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4470.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/UIAutomationTypes/v4.0_4.0.0.0__31bf3856ad364e35/UIAutomationTypes.dll
----------------------------------------
System.Runtime.Serialization.Formatters.Soap
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Serialization.Formatters.Soap/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Runtime.Serialization.Formatters.Soap.dll
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
如果繼續單擊“繼續”,則會在應用程式關閉之前顯示此堆疊跟蹤
![在 TextChanged 事件之后訪問組合框專案會導致物件已處置例外 [C# .NET 4.6]](https://img.uj5u.com/2022/03/15/0830c8d235d64fb0a45de94b8745e6ab.png)
代碼
文本更改事件
private void aliasMulticolcombobox_TextChanged(object sender, EventArgs e)
{
try
{
aliasMulticolcombobox.SelectedValueChanged = new EventHandler(aliasMulticolcombobox_SelectedValueChanged);
}
catch (Exception exception)
{
MessageBox.Show(exception.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
SelectedValueChanged 事件
private void aliasMulticolcombobox_SelectedValueChanged(object sender, EventArgs e)
{
try
{
ComboBoxBaseDataBound c = aliasMulticolcombobox as ComboBoxBaseDataBound;
if (c.SelectedIndex != -1)
{
DataRowView dv = c.Items[c.SelectedIndex] as DataRowView;
c.Text = dv.Row[0].ToString();
dataGridView1.Rows[currRow].Cells[1].Value = c.Text;
}
}
catch (Exception exception)
{
MessageBox.Show(exception.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
到目前為止我嘗試過的
- Check if the combobox popup container is accessible by using the aliasMulticolcombobox.PopupContainer.IsAccessible() function
- Check if the combobox popup container is disposed by using the aliasMulticolcombobox.PopupContainer.IsDisposed() function so I can return from the function
- Tried the .BeforeCloseUp Event to cancel the dispose call
- Tried switching event handlers
Despite all these efforts the same problem persists
uj5u.com熱心網友回復:
我剛剛與 Syncfusion 開發人員取得聯系,他們回應說這是一個錯誤
我們已經驗證并確認所報告的場景是一個缺陷,并為所報告的場景記錄了一個報告“在清除文本后選擇 MultiColumnComboBox 中的值時引發了 TargetParameterCountException”。我們將在 2022 年 3 月 25 日為報告的問題提供補丁。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/443396.html
