private void CreateEditForm(bool isBinary) { string keyPath = tvRegistryDirectory.SelectedNode.FullPath; string name = lstRegistryValues.SelectedItems[0].Name; RegValueData value = ((RegValueData[])tvRegistryDirectory.SelectedNode.Tag).ToList().Find(item => item.Name == name); // any kind can be edited as binary RegistryValueKind kind = isBinary ? RegistryValueKind.Binary : value.Kind; using (var frm = GetEditForm(value, kind)) { if (frm.ShowDialog() == DialogResult.OK) { _registryHandler.ChangeRegistryValue(keyPath, (RegValueData)frm.Tag); } } }