private void ClickOnStatusInfo(object sender, EventArgs e)
        {
            if (sender is LabelItem label && label.Tag is string id)
            {
                var existing  = GetLoadedStatusInfoProviders()?.ToArray();
                var providers = _providers?
                                .Where(x => (string.CompareOrdinal(id, x.GetExtensionId()) == 0) ||
                                       !(existing?.Contains(x.GetExtensionId()) ?? false))
                                .ToArray();

                if (providers?.Any() ?? false)
                {
                    using (var dialog = new StatusBarItemSelectionDialog(providers)
                    {
                        Provider = _providers.FirstOrDefault(x =>
                                                             string.CompareOrdinal(id, x.GetExtensionId()) == 0)
                    })
                    {
                        var result = dialog.ShowDialog(this);
                        if (result == DialogResult.OK)
                        {
                            var provider = dialog.Provider;
                            if (provider != null)
                            {
                                var newId = provider.GetExtensionId();
                                if (string.CompareOrdinal(id, newId) != 0)
                                {
                                    provider.Initialize(_model);
                                    label.Text           = provider.CurrentStatus;
                                    label.Tag            = newId;
                                    provider.UpdateInfo += UpdateStatusInfo;
                                    UpdateProviderConfig();
                                    _statusBar.Refresh();
                                }
                            }
                        }
                        else if (result == DialogResult.Abort)
                        {
                            dialog.Provider?.Dispose();
                            _statusBar.Items.Remove(label);
                            UpdateProviderConfig();
                            _statusBar.Refresh();
                        }
                    }
                }
            }
        }
        private void _addStatusInfoProvider_Click(object sender, EventArgs e)
        {
            var existing  = GetLoadedStatusInfoProviders()?.ToArray();
            var providers = _providers?
                            .Where(x => !(existing?.Contains(x.GetExtensionId()) ?? false))
                            .ToArray();

            if (providers?.Any() ?? false)
            {
                using (var dialog = new StatusBarItemSelectionDialog(providers))
                {
                    if (dialog.ShowDialog(this) == DialogResult.OK)
                    {
                        var provider = dialog.Provider;
                        if (provider != null)
                        {
                            AddProviderLabel(provider);
                            UpdateProviderConfig();
                        }
                    }
                }
            }
        }