I know this is old, I agree with John. Even with a large format string (see code sample below) it still takes me less than 1 minute to repeat the location of the element pointers, if I need to add something, and I find it more convenient and easy to read, and then try to create process automation method. The problem with automation for this is when I try to take a look at the code after a few weeks .. you cannot just figure it out at a glance. In addition, once you have a good look at Visual Studio and learn how to use things like block editing mode and some other advanced features, you can be quite productive.
//----------------------------------------------------------------------------- // <copyright file="ShellForm.cs" company="DCOM Productions"> // Copyright (c) DCOM Productions. All rights reserved. // </copyright> //----------------------------------------------------------------------------- string updateCommandText = string.Format("UPDATE `moh`.`moh` SET ageact = '{0}', branch = '{1}', cemetary = '{2}', citation = '{3}', citycement = '{4}', cdateact = '{5}', cdateaward = '{6}', cdatebirth = '{7}', cdatedeath = '{8}', namefirst = '{9}', namelast = '{10}', placeact = '{11}', placeenter = '{12}', presat = '{13}', presby = '{14}', rankact = '{15}', rankawd = '{16}', rankhigh = '{17}', synopsis = '{18}', unit = '{19}', war = '{20}', imgfile = '{21}' WHERE ID = '{22}'", /* {0} */ uxAgeAct.Text.Replace("'", "''"), /* {1} */ uxBranch.Text.Replace("'", "''"), /* {2} */ uxCemetary.Text.Replace("'", "''"), /* {3} */ uxCitation.Text.Replace("'", "''"), /* {4} */ uxCityCemetary.Text.Replace("'", "''"), /* {5} */ uxDateAct.Text.Replace("'", "''"), /* {6} */ uxDateAward.Text.Replace("'", "''"), /* {7} */ uxDateBirth.Text.Replace("'", "''"), /* {8} */ uxDateDiceased.Text.Replace("'", "''"), /* {9} */ uxNameFirst.Text.Replace("'", "''"), /* {10} */ uxNameLast.Text.Replace("'", "''"), /* {11} */ uxPlaceAct.Text.Replace("'", "''"), /* {12} */ uxPlaceEnter.Text.Replace("'", "''"), /* {13} */ uxPresentedAt.Text.Replace("'", "''"), /* {14} */ uxPresentedBy.Text.Replace("'", "''"), /* {15} */ uxRankAct.Text.Replace("'", "''"), /* {16} */ uxRankAwarded.Text.Replace("'", "''"), /* {17} */ uxRankHigh.Text.Replace("'", "''"), /* {18} */ uxSynopsis.Text.Replace("'", "''"), /* {19} */ uxUnit.Text.Replace("'", "''"), /* {20} */ uxWar.Text.Replace("'", "''"), /* {21} */ uxImgFile.Text.Replace("'", "''"), /* {22} */ dataRow["ID"].ToString());