{"action":"created","issue":{"url":"https://api.github.com/repos/dwmkerr/sharpshell/issues/233","repository_url":"https://api.github.com/repos/dwmkerr/sharpshell","labels_url":"https://api.github.com/repos/dwmkerr/sharpshell/issues/233/labels{/name}","comments_url":"https://api.github.com/repos/dwmkerr/sharpshell/issues/233/comments","events_url":"https://api.github.com/repos/dwmkerr/sharpshell/issues/233/events","html_url":"https://github.com/dwmkerr/sharpshell/issues/233","id":377231165,"node_id":"MDU6SXNzdWUzNzcyMzExNjU=","number":233,"title":"Explorer crash... again.","user":{"login":"ElektroStudios","id":13082613,"node_id":"MDQ6VXNlcjEzMDgyNjEz","avatar_url":"https://avatars0.githubusercontent.com/u/13082613?v=4","gravatar_id":"","url":"https://api.github.com/users/ElektroStudios","html_url":"https://github.com/ElektroStudios","followers_url":"https://api.github.com/users/ElektroStudios/followers","following_url":"https://api.github.com/users/ElektroStudios/following{/other_user}","gists_url":"https://api.github.com/users/ElektroStudios/gists{/gist_id}","starred_url":"https://api.github.com/users/ElektroStudios/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ElektroStudios/subscriptions","organizations_url":"https://api.github.com/users/ElektroStudios/orgs","repos_url":"https://api.github.com/users/ElektroStudios/repos","events_url":"https://api.github.com/users/ElektroStudios/events{/privacy}","received_events_url":"https://api.github.com/users/ElektroStudios/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"dwmkerr","id":1926984,"node_id":"MDQ6VXNlcjE5MjY5ODQ=","avatar_url":"https://avatars2.githubusercontent.com/u/1926984?v=4","gravatar_id":"","url":"https://api.github.com/users/dwmkerr","html_url":"https://github.com/dwmkerr","followers_url":"https://api.github.com/users/dwmkerr/followers","following_url":"https://api.github.com/users/dwmkerr/following{/other_user}","gists_url":"https://api.github.com/users/dwmkerr/gists{/gist_id}","starred_url":"https://api.github.com/users/dwmkerr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dwmkerr/subscriptions","organizations_url":"https://api.github.com/users/dwmkerr/orgs","repos_url":"https://api.github.com/users/dwmkerr/repos","events_url":"https://api.github.com/users/dwmkerr/events{/privacy}","received_events_url":"https://api.github.com/users/dwmkerr/received_events","type":"User","site_admin":false},"assignees":[{"login":"dwmkerr","id":1926984,"node_id":"MDQ6VXNlcjE5MjY5ODQ=","avatar_url":"https://avatars2.githubusercontent.com/u/1926984?v=4","gravatar_id":"","url":"https://api.github.com/users/dwmkerr","html_url":"https://github.com/dwmkerr","followers_url":"https://api.github.com/users/dwmkerr/followers","following_url":"https://api.github.com/users/dwmkerr/following{/other_user}","gists_url":"https://api.github.com/users/dwmkerr/gists{/gist_id}","starred_url":"https://api.github.com/users/dwmkerr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dwmkerr/subscriptions","organizations_url":"https://api.github.com/users/dwmkerr/orgs","repos_url":"https://api.github.com/users/dwmkerr/repos","events_url":"https://api.github.com/users/dwmkerr/events{/privacy}","received_events_url":"https://api.github.com/users/dwmkerr/received_events","type":"User","site_admin":false}],"milestone":null,"comments":30,"created_at":"2018-11-05T02:46:53Z","updated_at":"2018-11-17T23:15:29Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"Hi.\r\n\r\nI'm sorry to bring bad news but the Explorer crash problem is not solved, I have found a bug that causes Explorer to crash in specific circumstances. I'm not sure whether it is the same bug or different.\r\n\r\nHere below I'll explain how to reproduce it, or at least how I think you will be able to reproduce it, this is how my user-interface (my property page) is composed, I don't have any code running in background and the explorer just crash after some time after the property page is initialized...\r\n\r\n1. Add a TableLayoutPanel with 0 columns and 2 rows.\r\n2. Add a TabControl on the top row.\r\n3. Add a Panel on the bottom row.\r\n4. Add a Button inside the Panel.\r\n5. Add 3 additional tab pages to the TabControl , for a total of 4 tab pages.\r\n6. Add a ListView in each tab page.\r\n7. Set the \"Dock\" property value to \"Fill\" for: TableLayoutPanel, TabControl, Panel and all the ListViews. Or in other words, for all the controls except the Button.\r\n\r\nResult would be something like this:\r\n\r\n![](https://i.imgur.com/qmcmufb.png)\r\n\r\n8. Compile, register the shell-extension and open/initialize the property page.\r\n9. Wait like 1 minute or so until the Explorer crash occur. I have the feeling that the crash will occur faster if the property page lose input focus, or if you hide the window by putting another window to foreground, and then you return the input focus to the property page it will hang and finally Explorer will crash.\r\n\r\nOriginally I just had put one Listview control in the UI (nothing more) and all worked perfect after #222 fix, but now after doing this table layout and tabbed structure I'm having the Explorer crash again. I disabled/commented every line of a method block and method call and everything in my source-code to ensure that nothing in my source-code is causing the crash, the problem is with the changes in the UI, with the controls that I added, I don't know exactly what or why.\r\n\r\nOh my god, how desperate is this thing...\r\n\r\n----------------------\r\n\r\nAnyway if needed to analyze, this is the exact source-code that I compiled:\r\n\r\n```\r\n#Region \" Option Statements \"\r\n\r\nOption Strict On\r\nOption Explicit On\r\nOption Infer Off\r\n\r\n#End Region\r\n\r\n#Region \" Imports \"\r\n\r\nImports System.ComponentModel\r\nImports System.Globalization\r\nImports System.IO\r\nImports System.Reflection\r\nImports System.Text\r\nImports System.Windows.Forms\r\n\r\nImports SharpShell.SharpPropertySheet\r\n\r\n#End Region\r\n\r\n#Region \" PropertyPage \"\r\n\r\nPartial Public Class PropertyPage : Inherits SharpPropertyPage\r\n\r\n#Region \" Private Fields \"\r\n\r\n    Private filePath As String\r\n    Private currentListView As ListView\r\n\r\n    Private ReadOnly lvItemsProductDict As New Dictionary(Of String, ListViewItem)(20, StringComparer.OrdinalIgnoreCase) From {\r\n            {\"File Name\", New ListViewItem(\"File Name\")},\r\n            {\"Original Name\", New ListViewItem(\"Original Name\")},\r\n            {\"Product Name\", New ListViewItem(\"Product Name\")},\r\n            {\"Product Description\", New ListViewItem(\"Product Description\")},\r\n            {\"Company Name\", New ListViewItem(\"Company Name\")},\r\n            {\"Copyright\", New ListViewItem(\"Copyright\")},\r\n            {\"File Version\", New ListViewItem(\"File Version\")},\r\n            {\"Product Version\", New ListViewItem(\"Product Version\")},\r\n            {\"Language\", New ListViewItem(\"Language\")}\r\n        }\r\n\r\n    Private ReadOnly lvItemsCompilationDict As New Dictionary(Of String, ListViewItem)(20, StringComparer.OrdinalIgnoreCase) From {\r\n            {\"PE File Kind\", New ListViewItem(\"PE File Kind\")},\r\n            {\"Platform\", New ListViewItem(\"Platform\")},\r\n            {\"Build Configuration\", New ListViewItem(\"Build Configuration\")},\r\n            {\"CLR Version\", New ListViewItem(\"CLR Version\")},\r\n            {\"Target .NET Framework\", New ListViewItem(\"Target .NET Framework\")},\r\n            {\"Entry-Point Address\", New ListViewItem(\"Entry-Point Address\")},\r\n            {\"Root Namespace\", New ListViewItem(\"Root Namespace\")},\r\n            {\"Is Strong-Name Signed\", New ListViewItem(\"Is Strong-Name Signed\")},\r\n            {\"Public Key Token\", New ListViewItem(\"Public Key Token\")},\r\n            {\"Compilation TimeStamp\", New ListViewItem(\"Compilation TimeStamp\")}\r\n        }\r\n\r\n    Private ReadOnly lvItemsAttributesDict As New Dictionary(Of String, ListViewItem)(20, StringComparer.OrdinalIgnoreCase) From {\r\n            {\"Dll Import Search Paths\", New ListViewItem(\"Dll Import Search Paths\")},\r\n            {\"Is CLS Compliant\", New ListViewItem(\"Is CLS Compliant\")},\r\n            {\"Is COM Visible\", New ListViewItem(\"Is COM Visible\")},\r\n            {\"Is Installed in GAC\", New ListViewItem(\"Is Installed in GAC\")},\r\n            {\"Security Permission\", New ListViewItem(\"Security Permission\")}\r\n        }\r\n\r\n    Private ReadOnly lvItemsUniqueIdsDict As New Dictionary(Of String, ListViewItem)(20, StringComparer.OrdinalIgnoreCase) From {\r\n            {\"Assembly GUID\", New ListViewItem(\"Assembly GUID\")},\r\n            {\"MD5 Hash\", New ListViewItem(\"MD5 Hash\")},\r\n            {\"SHA-1 Hash\", New ListViewItem(\"SHA-1 Hash\")},\r\n            {\"SHA-256 Hash\", New ListViewItem(\"SHA-256 Hash\")}\r\n        }\r\n\r\n#End Region\r\n\r\n#Region \" Constructors \"\r\n\r\n    Public Sub New()\r\n        MyClass.InitializeComponent()\r\n\r\n        Me.Name = My.Application.Info.AssemblyName\r\n        Me.PageTitle = Me.Name\r\n        ' Me.PageIcon = My.Resources.Visual_Studio\r\n    End Sub\r\n\r\n#End Region\r\n\r\n#Region \" Event Invocators \"\r\n\r\n    Protected Overrides Sub OnPropertyPageInitialised(ByVal e As SharpPropertySheet)\r\n        Me.filePath = e.SelectedItemPaths.Single()\r\n        MyBase.OnPropertyPageInitialised(e)\r\n    End Sub\r\n\r\n#End Region\r\n\r\n#Region \" Event Handlers \"\r\n\r\n    Private Sub TabControlListViews_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles TabControlListViews.SelectedIndexChanged\r\n    End Sub\r\n\r\n    Private Sub CopyToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CopyToolStripMenuItem.Click\r\n    End Sub\r\n\r\n    Private Sub ButtonSave_Click(sender As Object, e As EventArgs) Handles ButtonSave.Click\r\n    End Sub\r\n\r\n#End Region\r\n\r\n#Region \" Private Methods \"\r\n\r\n    Private Sub LoadAssemblyInfo()\r\n    End Sub\r\n\r\n    Private Sub LoadListViewItems(lv As ListView)\r\n    End Sub\r\n\r\n    Private Sub SaveAsTextFile(filePath As String)\r\n    End Sub\r\n\r\n#End Region\r\n\r\nEnd Class\r\n\r\n#End Region\r\n```"},"comment":{"url":"https://api.github.com/repos/dwmkerr/sharpshell/issues/comments/439654670","html_url":"https://github.com/dwmkerr/sharpshell/issues/233#issuecomment-439654670","issue_url":"https://api.github.com/repos/dwmkerr/sharpshell/issues/233","id":439654670,"node_id":"MDEyOklzc3VlQ29tbWVudDQzOTY1NDY3MA==","user":{"login":"ElektroStudios","id":13082613,"node_id":"MDQ6VXNlcjEzMDgyNjEz","avatar_url":"https://avatars0.githubusercontent.com/u/13082613?v=4","gravatar_id":"","url":"https://api.github.com/users/ElektroStudios","html_url":"https://github.com/ElektroStudios","followers_url":"https://api.github.com/users/ElektroStudios/followers","following_url":"https://api.github.com/users/ElektroStudios/following{/other_user}","gists_url":"https://api.github.com/users/ElektroStudios/gists{/gist_id}","starred_url":"https://api.github.com/users/ElektroStudios/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ElektroStudios/subscriptions","organizations_url":"https://api.github.com/users/ElektroStudios/orgs","repos_url":"https://api.github.com/users/ElektroStudios/repos","events_url":"https://api.github.com/users/ElektroStudios/events{/privacy}","received_events_url":"https://api.github.com/users/ElektroStudios/received_events","type":"User","site_admin":false},"created_at":"2018-11-17T23:15:29Z","updated_at":"2018-11-17T23:15:29Z","author_association":"CONTRIBUTOR","body":"> For a simple fix the `SharpPropertyPage` could probably set the style of all containing `TabControl`s by itself. Or it should deny usage of TabControls until it's fixed.\r\n\r\nFor sure it would be easy to determine a TabControl window by its class name (**SysTabControl32**) and then apply a control style or whatever other things to do with that window, however, I think any solution should care about 3rd party controls too, that maybe could have implemented the same factors that makes a TabControl hangs a property sheet.\r\n"}}
{"actor":{"display_login":"ElektroStudios"}}