Closed Liv-Goh closed 3 months ago
It should be:
if (!string.IsNullOrEmpty(HelpNamespace))
@Liv-Goh two things:
@elachlan the test results are as below
- What is the value of the HelpNamespace in the designer.cs?
HelpNamespace value is empty string in both .NET 8 and 9
- What is the stack trace from .NET 8? (we should see what argument exception is thrown.)
System.ArgumentException HResult=0x80070057 Message=Help URL '' is not valid. (Parameter 'url') Source=System.Windows.Forms StackTrace: at System.Windows.Forms.Help.ShowHTMLFile(Control parent, String url, HelpNavigator command, Object param) at System.Windows.Forms.HelpProvider.OnControlHelp(Object sender, HelpEventArgs hevent) at System.Windows.Forms.Control.OnHelpRequested(HelpEventArgs hevent) at System.Windows.Forms.Control.WmHelp(Message& m) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ButtonBase.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(HWND hWnd, MessageId msg, WPARAM wparam, LPARAM lparam)
Help.GetHelpFileType
probably needs to check for empty string instead of a standard null check. We also should probably throw ArugementNullException
in ShowHTML10Help
, like we do in ShowHTMLFile
.
@elachlan would you like to work on this one, or should I assign a team member? This is definitely one I want to take for .NET 9.
@merriemcgaw happy for someone else to take this on.
@LeafShi1 - could your teams please take a look?
@LeafShi1 - could your teams please take a look? @SimonZhao888 will investigate this issue
@Liv-Goh, could you try to change the exception setting to see whether the error exception will pop out?
And make sure you have disenable the 'Enable Just My Code' in Debugging Options Setting.
@SimonZhao888 Yes, the error exception will pop out after change the exception setting and set 'Enable Just My Code' to disable
Hi @merriemcgaw, @Tanya-Solyanik, @elachlan,
After we change the exception setting, the error exception will pop out, and error exception throwing for empty strings of helpNamespace property is also consistent with framework 4.7.2 and .NET 8.0.
I think we don't need add any check for empty string of helpNamespace property.
.NET version
.NET 9.0 SDK build: 9.0.100-preview.7.24321.3
Did it work in .NET Framework?
Yes
Did it work in any of the earlier releases of .NET Core or .NET 5+?
Yes, this is a regression issue. Not reproduced on .NET 8.0
Issue description
Current Behavior (.NET 9.0): When the helpNamespace property in helpProvider is blank after delete the previous saved URL, project exit from runtime automatically when press F1 and no error exception popped out.
https://github.com/dotnet/winforms/assets/169347065/fb053321-b64c-4e64-ab81-9c72b4d5ffcf
Expected Behavior (.NET 8.0): When the helpNamespace property in helpProvider is blank after delete the previous saved URL, error exception popped out when press F1.
Steps to reproduce