编写代码以从对象填充文本框后,例如:
txtFirstName.Text = customer.FirstName;
txtLastName.Text = customer.LastName;
txtAddress.Text = customer.Address;
txtCity.Text = customer.City;
在 Visual Studio(或者甚至像 Resharper 之类的东西)中是否可以将此代码复制并粘贴到保存函数中,并反转等号周围的代码,以便它看起来像:
customer.FirstName = txtFirstName.Text;
customer.LastName = txtLastName.Text;
customer.Address = txtAddress.Text;
customer.City = txtCity.Text;
VS2012之前:
{[a-zA-Z\.]*} = {[a-zA-Z\.]*};
\2 = \1;
对于使用 .NET 正则表达式的 VS2012(大概是更高版本):
([a-zA-Z\.]*) = ([a-zA-Z\.]*);
${2} = ${1};
.*
(正则表达式)图标(替换文本框下方的第三个图标)据我所知没有。当然,如果您使用多种可用的绑定方法之一,那么您就不必这样做 - 绑定将在两个方向上进行更新(包括通过通知进行更改)。
对于 winform 来说:
txtFirstName.DataBindings.Add("Text", customer, "FirstName");
等等
我有同样的需求,但在约翰提供的解决方案中我必须接受比
a-zA-Z\.
更多的字符,所以我稍微修改了它的常规异常,如下所示:
查找内容:
{^[^\=]*} = {.*}
替换为:
\2 = \1
这将反转线上找到的第一个等号周围的任何东西
$uiElement$ = $dto$;
$dto$ = $uiElement$;
这将允许您输入一次,它会为您复制它,然后您可以将保存版本剪切并粘贴到其他方法。
搜索词正则表达式:
搜索([^= ]*) = ([^= ]*);
找到:
([a-zA-Z1-9-+()<>\.]*) = ([a-zA-Z1-9-+()<>\.]*)
${2} = ${1}