Skip to content

Commit d65a188

Browse files
committed
closes #376 (renaming form controls)
1 parent 85e52bf commit d65a188

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

RetailCoder.VBE/UI/Refactorings/Rename/RenamePresenter.cs

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using System;
2-
using System.Collections.Generic;
32
using System.Linq;
43
using System.Runtime.InteropServices;
54
using System.Text.RegularExpressions;
@@ -80,12 +79,41 @@ private void RenameModule()
8079

8180
private void RenameDeclaration()
8281
{
82+
if (_view.Target.DeclarationType == DeclarationType.Control)
83+
{
84+
RenameControl();
85+
return;
86+
}
87+
8388
var module = _vbe.FindCodeModules(_view.Target.QualifiedName.QualifiedModuleName).First();
8489
var content = module.get_Lines(_view.Target.Selection.StartLine, 1);
8590
var newContent = GetReplacementLine(content, _view.Target.IdentifierName, _view.NewName);
8691
module.ReplaceLine(_view.Target.Selection.StartLine, newContent);
8792
}
8893

94+
private void RenameControl()
95+
{
96+
try
97+
{
98+
var form = _vbe.FindCodeModules(_view.Target.QualifiedName.QualifiedModuleName).First();
99+
var control = form.Parent.Designer.Controls(_view.Target.IdentifierName);
100+
control.Name = _view.NewName;
101+
102+
foreach (var handler in _declarations.FindEventHandlers(_view.Target))
103+
{
104+
var newMemberName = _view.Target.ComponentName + '_' + _view.NewName;
105+
var module = handler.Project.VBComponents.Item(handler.ComponentName).CodeModule;
106+
107+
var content = module.get_Lines(handler.Selection.StartLine, 1);
108+
var newContent = GetReplacementLine(content, handler.IdentifierName, newMemberName);
109+
module.ReplaceLine(handler.Selection.StartLine, newContent);
110+
}
111+
}
112+
catch (COMException)
113+
{
114+
}
115+
}
116+
89117
private void RenameUsages()
90118
{
91119
// todo: refactor

0 commit comments

Comments
 (0)