diff --git a/Src/xWorks/ConfiguredLcmGenerator.cs b/Src/xWorks/ConfiguredLcmGenerator.cs
index d302e9c60f..f668efebbd 100644
--- a/Src/xWorks/ConfiguredLcmGenerator.cs
+++ b/Src/xWorks/ConfiguredLcmGenerator.cs
@@ -2476,12 +2476,28 @@ private static string GetSenseNumber(string numberingStyle, ILexSense sense,
 					break;
 				default: // handles %d and %O. We no longer support "%z" (1  b  iii) because users can hand-configure its equivalent
 					nextNumber = senseCount.ToString();
-					// Use the digits from the CustomHomographNumbers if they are defined
-					if (info.HomographConfig.CustomHomographNumbers.Count == 10)
+					// For the sense numbers, use the numbering system associated with the sense number writing system, if there is one.
+					var senseNumberWs = info.HomographConfig.WritingSystem;
+					if (senseNumberWs != null)
 					{
-						for (var digit = 0; digit < 10; ++digit)
+						CoreWritingSystemDefinition writingSystem = null;
+						try
 						{
-							nextNumber = nextNumber.Replace(digit.ToString(), info.HomographConfig.CustomHomographNumbers[digit]);
+							writingSystem = sense?.Cache.ServiceLocator.WritingSystemManager.Get(senseNumberWs);
+						}
+						catch (KeyNotFoundException)
+						{
+							//Don't replace sense number digits.
+							break;
+						}
+						var unicodeCharacters = HeadWordNumbersHelper.GetUnicodeCharacters(writingSystem?.NumberingSystem?.Digits);
+						if (unicodeCharacters != null)
+						{
+							for (var digit = 0; digit < 10; ++digit)
+							{
+								nextNumber = nextNumber.Replace(digit.ToString(),
+									unicodeCharacters[digit]);
+							}
 						}
 					}
 					break;
diff --git a/Src/xWorks/DictionaryConfigurationModel.cs b/Src/xWorks/DictionaryConfigurationModel.cs
index 9e7a06da32..4155c604d2 100644
--- a/Src/xWorks/DictionaryConfigurationModel.cs
+++ b/Src/xWorks/DictionaryConfigurationModel.cs
@@ -201,7 +201,6 @@ public void Load(LcmCache cache)
 				else
 				{
 					HomographConfiguration.HomographWritingSystem = string.Empty;
-					HomographConfiguration.CustomHomographNumbers = string.Empty;
 				}
 			}
 
@@ -370,7 +369,6 @@ public DictionaryHomographConfiguration(DictionaryHomographConfiguration other)
 			ShowSenseNumberReversal = other.ShowSenseNumberReversal;
 			HomographNumberBefore = other.HomographNumberBefore;
 			HomographWritingSystem = other.HomographWritingSystem;
-			CustomHomographNumberList = other.CustomHomographNumberList != null ? new List<string>(other.CustomHomographNumberList) : null;
 		}
 
 		public DictionaryHomographConfiguration(HomographConfiguration config)
@@ -382,7 +380,6 @@ public DictionaryHomographConfiguration(HomographConfiguration config)
 			ShowHwNumInCrossRef = config.ShowHomographNumber(HomographConfiguration.HeadwordVariant.DictionaryCrossRef);
 			ShowHwNumInReversalCrossRef = config.ShowHomographNumber(HomographConfiguration.HeadwordVariant.ReversalCrossRef);
 			HomographWritingSystem = config.WritingSystem;
-			CustomHomographNumberList = config.CustomHomographNumbers;
 		}
 
 		/// <summary>
@@ -397,12 +394,8 @@ public void ExportToHomographConfiguration(HomographConfiguration config)
 			config.SetShowHomographNumber(HomographConfiguration.HeadwordVariant.DictionaryCrossRef, ShowHwNumInCrossRef);
 			config.SetShowHomographNumber(HomographConfiguration.HeadwordVariant.ReversalCrossRef, ShowHwNumInReversalCrossRef);
 			config.WritingSystem = HomographWritingSystem;
-			config.CustomHomographNumbers = CustomHomographNumberList;
 		}
 
-		[XmlIgnore]
-		public List<string> CustomHomographNumberList { get; internal set; }
-
 		[XmlAttribute("showHwNumInReversalCrossRef")]
 		public bool ShowHwNumInReversalCrossRef { get; set; }
 
@@ -421,19 +414,6 @@ public void ExportToHomographConfiguration(HomographConfiguration config)
 		[XmlAttribute("homographNumberBefore")]
 		public bool HomographNumberBefore { get; set; }
 
-		[XmlAttribute("customHomographNumbers")]
-		public string CustomHomographNumbers
-		{
-			get
-			{
-				return CustomHomographNumberList == null ? string.Empty : WebUtility.HtmlEncode(string.Join(",", CustomHomographNumberList));
-			}
-			set
-			{
-				CustomHomographNumberList = new List<string>(WebUtility.HtmlDecode(value).Split(new []{','}, StringSplitOptions.RemoveEmptyEntries));
-			}
-		}
-
 		[XmlAttribute("homographWritingSystem")]
 		public string HomographWritingSystem { get; set; }
 	}
diff --git a/Src/xWorks/DictionaryDetailsController.cs b/Src/xWorks/DictionaryDetailsController.cs
index 151e812761..05bf2ba91b 100644
--- a/Src/xWorks/DictionaryDetailsController.cs
+++ b/Src/xWorks/DictionaryDetailsController.cs
@@ -873,7 +873,6 @@ private void HandleHeadwordNumbersButton()
 				// ReSharper disable once AccessToDisposedClosure - can only be used before the dialog is disposed
 				dlg.RunStylesDialog += (sender, e) => HandleStylesBtn((ComboBox) sender, ((ComboBox)sender).Text);
 				dlg.SetupDialog(m_propertyTable.GetValue<IHelpTopicProvider>("HelpTopicProvider"));
-				dlg.SetStyleSheet = FontHeightAdjuster.StyleSheetFromPropertyTable(m_propertyTable);
 				//dlg.StartPosition = FormStartPosition.CenterScreen;
 				if (dlg.ShowDialog(View.TopLevelControl) != DialogResult.OK)
 					return;
diff --git a/Src/xWorks/HeadWordNumbersController.cs b/Src/xWorks/HeadWordNumbersController.cs
index e71f236264..5f074ffe1f 100644
--- a/Src/xWorks/HeadWordNumbersController.cs
+++ b/Src/xWorks/HeadWordNumbersController.cs
@@ -1,4 +1,4 @@
-﻿// Copyright (c) 2017 SIL International
+// Copyright (c) 2017 SIL International
 // This software is licensed under the LGPL, version 2.1 or later
 // (http://www.gnu.org/licenses/lgpl-2.1.html)
 
@@ -6,6 +6,7 @@
 using System.Collections.Generic;
 using System.Linq;
 using SIL.LCModel;
+using SIL.LCModel.Core.WritingSystems;
 using SIL.LCModel.DomainImpl;
 
 namespace SIL.FieldWorks.XWorks
@@ -33,9 +34,7 @@ public HeadwordNumbersController(IHeadwordNumbersView view, DictionaryConfigurat
 				model.IsReversal ? xWorksStrings.ReversalIndex : xWorksStrings.Dictionary,
 				Environment.NewLine,
 				model.Label);
-			_view.SetWsFactoryForCustomDigits(cache.WritingSystemFactory);
 			_view.AvailableWritingSystems = cache.LangProject.CurrentAnalysisWritingSystems.Union(cache.LangProject.CurrentVernacularWritingSystems);
-			_view.CustomDigits = _homographConfig.CustomHomographNumberList;
 			if (_cache.LangProject.AllWritingSystems.Any(ws => ws.Id == _homographConfig.HomographWritingSystem))
 			{
 				_view.HomographWritingSystem = string.IsNullOrEmpty(_homographConfig.HomographWritingSystem)
@@ -46,19 +45,29 @@ public HeadwordNumbersController(IHeadwordNumbersView view, DictionaryConfigurat
 			{
 				_view.HomographWritingSystem = _cache.LangProject.AllWritingSystems.First().DisplayLabel;
 			}
+			// If possible, get digits from the writing system's numbering system,
+			// otherwise use an empty list (which will be treated as default digits in the view).
+			IEnumerable<string> wsCustomDigits = new List<string>();
+			CoreWritingSystemDefinition writingSystem = null;
+			try
+			{
+				writingSystem = cache.ServiceLocator.WritingSystemManager?.Get(_homographConfig.HomographWritingSystem);
+			}
+			catch(KeyNotFoundException)
+			{
+				// Do nothing; writingSystem is already null.
+			}
+			var unicodeCharacters = HeadWordNumbersHelper.GetUnicodeCharacters(writingSystem?.NumberingSystem?.Digits);
+			if (unicodeCharacters != null)
+			{
+				wsCustomDigits = unicodeCharacters;
+			}
+			_view.CustomDigits = wsCustomDigits;
 			_view.HomographBefore = _homographConfig.HomographNumberBefore;
 			_view.ShowHomograph = _homographConfig.ShowHwNumber;
 			_view.ShowHomographOnCrossRef = _model.IsReversal ? _homographConfig.ShowHwNumInReversalCrossRef : _homographConfig.ShowHwNumInCrossRef;
 			_view.ShowSenseNumber = _model.IsReversal ? _homographConfig.ShowSenseNumberReversal : _homographConfig.ShowSenseNumber;
-			_view.OkButtonEnabled = _homographConfig.CustomHomographNumberList == null
-				|| !_homographConfig.CustomHomographNumberList.Any() || _homographConfig.CustomHomographNumberList.Count == 10;
-			_view.CustomDigitsChanged += OnViewCustomDigitsChanged;
-		}
-
-		private void OnViewCustomDigitsChanged(object sender, EventArgs eventArgs)
-		{
-			_view.OkButtonEnabled = !_view.CustomDigits.Any()
-				|| _view.CustomDigits.Count(digit => !string.IsNullOrWhiteSpace(digit)) == 10;
+			_view.OkButtonEnabled = true;
 		}
 
 		/// <summary>
@@ -93,7 +102,6 @@ public void Save()
 			}
 			_homographConfig.HomographWritingSystem = string.IsNullOrEmpty(_view.HomographWritingSystem) ? null :
 				_cache.LangProject.AllWritingSystems.First(ws => ws.DisplayLabel == _view.HomographWritingSystem).Id;
-			_homographConfig.CustomHomographNumberList = _view.CustomDigits == null ? new List<string>() : new List<string>(_view.CustomDigits);
 			_model.HomographConfiguration = _homographConfig;
 			_homographConfig.ExportToHomographConfiguration(_cache.ServiceLocator.GetInstance<HomographConfiguration>());
 		}
diff --git a/Src/xWorks/HeadWordNumbersDlg.cs b/Src/xWorks/HeadWordNumbersDlg.cs
index dd7867ff0a..78b5b6376d 100644
--- a/Src/xWorks/HeadWordNumbersDlg.cs
+++ b/Src/xWorks/HeadWordNumbersDlg.cs
@@ -1,4 +1,4 @@
-﻿// Copyright (c) 2017 SIL International
+// Copyright (c) 2017 SIL International
 // This software is licensed under the LGPL, version 2.1 or later
 // (http://www.gnu.org/licenses/lgpl-2.1.html)
 
@@ -24,7 +24,7 @@ namespace SIL.FieldWorks.XWorks
 	/// </summary>
 	public partial class HeadwordNumbersDlg : Form, IHeadwordNumbersView
 	{
-		private FwTextBox[] _digitBoxes;
+		private Label[] _digitBoxes;
 
 		public HeadwordNumbersDlg()
 		{
@@ -42,7 +42,6 @@ public HeadwordNumbersDlg()
 				m_digitZero, m_digitOne, m_digitTwo, m_digitThree, m_digitFour, m_digitFive,
 				m_digitSix, m_digitSeven, m_digitEight, m_digitNine
 			};
-			Shown += (sender, args) => { UpdateWritingSystemCodeInDigits(); };
 		}
 
 		/// <summary>
@@ -197,22 +196,6 @@ public string HomographWritingSystem
 			}
 		}
 
-		/// <summary>
-		/// Set the writing system code in each digit textbox
-		/// </summary>
-		private void UpdateWritingSystemCodeInDigits()
-		{
-			var wsHandle = ((CoreWritingSystemDefinition)m_writingSystemCombo.SelectedItem).Handle;
-			foreach (var digit in _digitBoxes)
-			{
-				digit.WritingSystemCode = wsHandle;
-				digit.SelectAll();
-				digit.ApplyWS(wsHandle);
-				digit.ApplyStyle("UiElement");
-				digit.RemoveSelection();
-			}
-		}
-
 		public IEnumerable<CoreWritingSystemDefinition> AvailableWritingSystems
 		{
 			set
@@ -234,54 +217,32 @@ public IEnumerable<string> CustomDigits
 				for (var i = 0; i < 10; ++i)
 				{
 					_digitBoxes[i].Text = digitsArray[i];
+					_digitBoxes[i].Visible = true;
+					// Set UseCompatibleTextRendering to false. This causes WindowsForms to use TextRenderer, which provides better fallback font performance.
+					_digitBoxes[i].UseCompatibleTextRendering = false;
 				}
 			}
 
 			get { return _digitBoxes.Select(db => db.Text).Where(text => !string.IsNullOrEmpty(text)); }
 		}
 
-		public event EventHandler CustomDigitsChanged
-		{
-			add
-			{
-				foreach (var textBox in _digitBoxes)
-				{
-					textBox.TextChanged += value;
-				}
-			}
-			remove
-			{
-				foreach (var textBox in _digitBoxes)
-				{
-					textBox.TextChanged -= value;
-				}
-			}
-		}
-
 		public bool OkButtonEnabled { get { return m_btnOk.Enabled; } set { m_btnOk.Enabled = value; } }
 
-		public LcmStyleSheet SetStyleSheet
+		private void m_writingSystemCombo_SelectedIndexChanged(object sender, EventArgs e)
 		{
-			set
+			// Populate digits from ws.
+			var selectedWs = m_writingSystemCombo.SelectedItem as CoreWritingSystemDefinition;
+			if (selectedWs?.NumberingSystem != null)
 			{
-				for (var i = 0; i < 10; ++i)
+				var digits = selectedWs.NumberingSystem.Digits;
+				if (!string.IsNullOrEmpty(digits))
 				{
-					_digitBoxes[i].StyleSheet = value;
+					// Populate the custom digits from writing system, if all digits are specified.
+					var unicodeCharacters = HeadWordNumbersHelper.GetUnicodeCharacters(digits);
+					if (unicodeCharacters != null)
+						CustomDigits = unicodeCharacters;
 				}
 			}
 		}
-
-		public void SetWsFactoryForCustomDigits(ILgWritingSystemFactory factory)
-		{
-			for (var i = 0; i < 10; ++i)
-			{
-				_digitBoxes[i].WritingSystemFactory = factory;
-			}
-		}
-
-		private void m_writingSystemCombo_SelectedIndexChanged(object sender, EventArgs e)
-		{
-			UpdateWritingSystemCodeInDigits();
-		}
 	}
 }
diff --git a/Src/xWorks/HeadWordNumbersDlg.designer.cs b/Src/xWorks/HeadWordNumbersDlg.designer.cs
index e4a4f037e0..01cba0d214 100644
--- a/Src/xWorks/HeadWordNumbersDlg.designer.cs
+++ b/Src/xWorks/HeadWordNumbersDlg.designer.cs
@@ -1,4 +1,4 @@
-﻿// Copyright (c) 2017 SIL International
+// Copyright (c) 2017 SIL International
 // This software is licensed under the LGPL, version 2.1 or later
 // (http://www.gnu.org/licenses/lgpl-2.1.html)
 
@@ -52,16 +52,16 @@ private void InitializeComponent()
 			this.buttonLayoutPanel = new System.Windows.Forms.FlowLayoutPanel();
 			this.customNumbersPanel = new System.Windows.Forms.Panel();
 			this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
-			this.m_digitNine = new SIL.FieldWorks.Common.Widgets.FwTextBox();
-			this.m_digitEight = new SIL.FieldWorks.Common.Widgets.FwTextBox();
-			this.m_digitSeven = new SIL.FieldWorks.Common.Widgets.FwTextBox();
-			this.m_digitSix = new SIL.FieldWorks.Common.Widgets.FwTextBox();
-			this.m_digitFive = new SIL.FieldWorks.Common.Widgets.FwTextBox();
-			this.m_digitFour = new SIL.FieldWorks.Common.Widgets.FwTextBox();
-			this.m_digitThree = new SIL.FieldWorks.Common.Widgets.FwTextBox();
-			this.m_digitTwo = new SIL.FieldWorks.Common.Widgets.FwTextBox();
-			this.m_digitOne = new SIL.FieldWorks.Common.Widgets.FwTextBox();
-			this.m_digitZero = new SIL.FieldWorks.Common.Widgets.FwTextBox();
+			this.m_digitNine = new System.Windows.Forms.Label();
+			this.m_digitEight = new System.Windows.Forms.Label();
+			this.m_digitSeven = new System.Windows.Forms.Label();
+			this.m_digitSix = new System.Windows.Forms.Label();
+			this.m_digitFive = new System.Windows.Forms.Label();
+			this.m_digitFour = new System.Windows.Forms.Label();
+			this.m_digitThree = new System.Windows.Forms.Label();
+			this.m_digitTwo = new System.Windows.Forms.Label();
+			this.m_digitOne = new System.Windows.Forms.Label();
+			this.m_digitZero = new System.Windows.Forms.Label();
 			this.label11 = new System.Windows.Forms.Label();
 			this.label10 = new System.Windows.Forms.Label();
 			this.label9 = new System.Windows.Forms.Label();
@@ -90,16 +90,6 @@ private void InitializeComponent()
 			this.buttonLayoutPanel.SuspendLayout();
 			this.customNumbersPanel.SuspendLayout();
 			this.tableLayoutPanel1.SuspendLayout();
-			((System.ComponentModel.ISupportInitialize)(this.m_digitNine)).BeginInit();
-			((System.ComponentModel.ISupportInitialize)(this.m_digitEight)).BeginInit();
-			((System.ComponentModel.ISupportInitialize)(this.m_digitSeven)).BeginInit();
-			((System.ComponentModel.ISupportInitialize)(this.m_digitSix)).BeginInit();
-			((System.ComponentModel.ISupportInitialize)(this.m_digitFive)).BeginInit();
-			((System.ComponentModel.ISupportInitialize)(this.m_digitFour)).BeginInit();
-			((System.ComponentModel.ISupportInitialize)(this.m_digitThree)).BeginInit();
-			((System.ComponentModel.ISupportInitialize)(this.m_digitTwo)).BeginInit();
-			((System.ComponentModel.ISupportInitialize)(this.m_digitOne)).BeginInit();
-			((System.ComponentModel.ISupportInitialize)(this.m_digitZero)).BeginInit();
 			this.homographStylePanel.SuspendLayout();
 			this.senseNumberStylePanel.SuspendLayout();
 			this.SuspendLayout();
@@ -263,123 +253,54 @@ private void InitializeComponent()
 			// 
 			// m_digitNine
 			// 
-			this.m_digitNine.AcceptsReturn = false;
-			this.m_digitNine.AdjustStringHeight = true;
 			resources.ApplyResources(this.m_digitNine, "m_digitNine");
-			this.m_digitNine.BackColor = System.Drawing.SystemColors.Window;
-			this.m_digitNine.controlID = null;
-			this.m_digitNine.HasBorder = true;
+			this.m_digitNine.BackColor = System.Drawing.SystemColors.Control;
 			this.m_digitNine.Name = "m_digitNine";
-			this.m_digitNine.SuppressEnter = false;
-			this.m_digitNine.WordWrap = false;
 			// 
 			// m_digitEight
 			// 
-			this.m_digitEight.AcceptsReturn = false;
-			this.m_digitEight.AdjustStringHeight = true;
 			resources.ApplyResources(this.m_digitEight, "m_digitEight");
-			this.m_digitEight.BackColor = System.Drawing.SystemColors.Window;
-			this.m_digitEight.controlID = null;
-			this.m_digitEight.HasBorder = true;
 			this.m_digitEight.Name = "m_digitEight";
-			this.m_digitEight.SuppressEnter = false;
-			this.m_digitEight.WordWrap = false;
 			// 
 			// m_digitSeven
 			// 
-			this.m_digitSeven.AcceptsReturn = false;
-			this.m_digitSeven.AdjustStringHeight = true;
 			resources.ApplyResources(this.m_digitSeven, "m_digitSeven");
-			this.m_digitSeven.BackColor = System.Drawing.SystemColors.Window;
-			this.m_digitSeven.controlID = null;
-			this.m_digitSeven.HasBorder = true;
 			this.m_digitSeven.Name = "m_digitSeven";
-			this.m_digitSeven.SuppressEnter = false;
-			this.m_digitSeven.WordWrap = false;
 			// 
 			// m_digitSix
 			// 
-			this.m_digitSix.AcceptsReturn = false;
-			this.m_digitSix.AdjustStringHeight = true;
 			resources.ApplyResources(this.m_digitSix, "m_digitSix");
-			this.m_digitSix.BackColor = System.Drawing.SystemColors.Window;
-			this.m_digitSix.controlID = null;
-			this.m_digitSix.HasBorder = true;
 			this.m_digitSix.Name = "m_digitSix";
-			this.m_digitSix.SuppressEnter = false;
-			this.m_digitSix.WordWrap = false;
 			// 
 			// m_digitFive
 			// 
-			this.m_digitFive.AcceptsReturn = false;
-			this.m_digitFive.AdjustStringHeight = true;
 			resources.ApplyResources(this.m_digitFive, "m_digitFive");
-			this.m_digitFive.BackColor = System.Drawing.SystemColors.Window;
-			this.m_digitFive.controlID = null;
-			this.m_digitFive.HasBorder = true;
 			this.m_digitFive.Name = "m_digitFive";
-			this.m_digitFive.SuppressEnter = false;
-			this.m_digitFive.WordWrap = false;
 			// 
 			// m_digitFour
 			// 
-			this.m_digitFour.AcceptsReturn = false;
-			this.m_digitFour.AdjustStringHeight = true;
 			resources.ApplyResources(this.m_digitFour, "m_digitFour");
-			this.m_digitFour.BackColor = System.Drawing.SystemColors.Window;
-			this.m_digitFour.controlID = null;
-			this.m_digitFour.HasBorder = true;
 			this.m_digitFour.Name = "m_digitFour";
-			this.m_digitFour.SuppressEnter = false;
-			this.m_digitFour.WordWrap = false;
 			// 
 			// m_digitThree
 			// 
-			this.m_digitThree.AcceptsReturn = false;
-			this.m_digitThree.AdjustStringHeight = true;
 			resources.ApplyResources(this.m_digitThree, "m_digitThree");
-			this.m_digitThree.BackColor = System.Drawing.SystemColors.Window;
-			this.m_digitThree.controlID = null;
-			this.m_digitThree.HasBorder = true;
 			this.m_digitThree.Name = "m_digitThree";
-			this.m_digitThree.SuppressEnter = false;
-			this.m_digitThree.WordWrap = false;
 			// 
 			// m_digitTwo
 			// 
-			this.m_digitTwo.AcceptsReturn = false;
-			this.m_digitTwo.AdjustStringHeight = true;
 			resources.ApplyResources(this.m_digitTwo, "m_digitTwo");
-			this.m_digitTwo.BackColor = System.Drawing.SystemColors.Window;
-			this.m_digitTwo.controlID = null;
-			this.m_digitTwo.HasBorder = true;
 			this.m_digitTwo.Name = "m_digitTwo";
-			this.m_digitTwo.SuppressEnter = false;
-			this.m_digitTwo.WordWrap = false;
 			// 
 			// m_digitOne
 			// 
-			this.m_digitOne.AcceptsReturn = false;
-			this.m_digitOne.AdjustStringHeight = true;
 			resources.ApplyResources(this.m_digitOne, "m_digitOne");
-			this.m_digitOne.BackColor = System.Drawing.SystemColors.Window;
-			this.m_digitOne.controlID = null;
-			this.m_digitOne.HasBorder = true;
 			this.m_digitOne.Name = "m_digitOne";
-			this.m_digitOne.SuppressEnter = false;
-			this.m_digitOne.WordWrap = false;
 			// 
 			// m_digitZero
 			// 
-			this.m_digitZero.AcceptsReturn = false;
-			this.m_digitZero.AdjustStringHeight = true;
 			resources.ApplyResources(this.m_digitZero, "m_digitZero");
-			this.m_digitZero.BackColor = System.Drawing.SystemColors.Window;
-			this.m_digitZero.controlID = null;
-			this.m_digitZero.HasBorder = true;
 			this.m_digitZero.Name = "m_digitZero";
-			this.m_digitZero.SuppressEnter = false;
-			this.m_digitZero.WordWrap = false;
 			// 
 			// label11
 			// 
@@ -533,16 +454,6 @@ private void InitializeComponent()
 			this.customNumbersPanel.PerformLayout();
 			this.tableLayoutPanel1.ResumeLayout(false);
 			this.tableLayoutPanel1.PerformLayout();
-			((System.ComponentModel.ISupportInitialize)(this.m_digitNine)).EndInit();
-			((System.ComponentModel.ISupportInitialize)(this.m_digitEight)).EndInit();
-			((System.ComponentModel.ISupportInitialize)(this.m_digitSeven)).EndInit();
-			((System.ComponentModel.ISupportInitialize)(this.m_digitSix)).EndInit();
-			((System.ComponentModel.ISupportInitialize)(this.m_digitFive)).EndInit();
-			((System.ComponentModel.ISupportInitialize)(this.m_digitFour)).EndInit();
-			((System.ComponentModel.ISupportInitialize)(this.m_digitThree)).EndInit();
-			((System.ComponentModel.ISupportInitialize)(this.m_digitTwo)).EndInit();
-			((System.ComponentModel.ISupportInitialize)(this.m_digitOne)).EndInit();
-			((System.ComponentModel.ISupportInitialize)(this.m_digitZero)).EndInit();
 			this.homographStylePanel.ResumeLayout(false);
 			this.homographStylePanel.PerformLayout();
 			this.senseNumberStylePanel.ResumeLayout(false);
@@ -593,15 +504,15 @@ private void InitializeComponent()
 		private System.Windows.Forms.Label label3;
 		private System.Windows.Forms.Label label2;
 		private System.Windows.Forms.Label label1;
-		private Common.Widgets.FwTextBox m_digitNine;
-		private Common.Widgets.FwTextBox m_digitEight;
-		private Common.Widgets.FwTextBox m_digitSeven;
-		private Common.Widgets.FwTextBox m_digitSix;
-		private Common.Widgets.FwTextBox m_digitFive;
-		private Common.Widgets.FwTextBox m_digitFour;
-		private Common.Widgets.FwTextBox m_digitThree;
-		private Common.Widgets.FwTextBox m_digitTwo;
-		private Common.Widgets.FwTextBox m_digitOne;
-		private Common.Widgets.FwTextBox m_digitZero;
+		private System.Windows.Forms.Label m_digitNine;
+		private System.Windows.Forms.Label m_digitEight;
+		private System.Windows.Forms.Label m_digitSeven;
+		private System.Windows.Forms.Label m_digitSix;
+		private System.Windows.Forms.Label m_digitFive;
+		private System.Windows.Forms.Label m_digitFour;
+		private System.Windows.Forms.Label m_digitThree;
+		private System.Windows.Forms.Label m_digitTwo;
+		private System.Windows.Forms.Label m_digitOne;
+		private System.Windows.Forms.Label m_digitZero;
 	}
 }
diff --git a/Src/xWorks/HeadWordNumbersDlg.resx b/Src/xWorks/HeadWordNumbersDlg.resx
index 69990a15ca..cd6c3818e9 100644
--- a/Src/xWorks/HeadWordNumbersDlg.resx
+++ b/Src/xWorks/HeadWordNumbersDlg.resx
@@ -123,10 +123,14 @@
   </data>
   <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
   <data name="label5.Location" type="System.Drawing.Point, System.Drawing">
-    <value>15, 161</value>
+    <value>20, 198</value>
+  </data>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="label5.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 0, 4, 0</value>
   </data>
   <data name="label5.Size" type="System.Drawing.Size, System.Drawing">
-    <value>287, 13</value>
+    <value>356, 16</value>
   </data>
   <data name="label5.TabIndex" type="System.Int32, mscorlib">
     <value>5</value>
@@ -150,10 +154,13 @@
     <value>True</value>
   </data>
   <data name="m_chkShowHomographNumInDict.Location" type="System.Drawing.Point, System.Drawing">
-    <value>6, 21</value>
+    <value>8, 26</value>
+  </data>
+  <data name="m_chkShowHomographNumInDict.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="m_chkShowHomographNumInDict.Size" type="System.Drawing.Size, System.Drawing">
-    <value>121, 17</value>
+    <value>152, 20</value>
   </data>
   <data name="m_chkShowHomographNumInDict.TabIndex" type="System.Int32, mscorlib">
     <value>4</value>
@@ -176,15 +183,17 @@
   <data name="m_chkShowSenseNumber.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
-  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
   <data name="m_chkShowSenseNumber.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
     <value>NoControl</value>
   </data>
   <data name="m_chkShowSenseNumber.Location" type="System.Drawing.Point, System.Drawing">
-    <value>26, 40</value>
+    <value>35, 49</value>
+  </data>
+  <data name="m_chkShowSenseNumber.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="m_chkShowSenseNumber.Size" type="System.Drawing.Size, System.Drawing">
-    <value>96, 17</value>
+    <value>119, 20</value>
   </data>
   <data name="m_chkShowSenseNumber.TabIndex" type="System.Int32, mscorlib">
     <value>5</value>
@@ -205,10 +214,13 @@
     <value>1</value>
   </data>
   <data name="m_btnOk.Location" type="System.Drawing.Point, System.Drawing">
-    <value>120, 3</value>
+    <value>160, 4</value>
+  </data>
+  <data name="m_btnOk.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="m_btnOk.Size" type="System.Drawing.Size, System.Drawing">
-    <value>75, 23</value>
+    <value>100, 28</value>
   </data>
   <data name="m_btnOk.TabIndex" type="System.Int32, mscorlib">
     <value>6</value>
@@ -229,10 +241,13 @@
     <value>2</value>
   </data>
   <data name="m_btnCancel.Location" type="System.Drawing.Point, System.Drawing">
-    <value>201, 3</value>
+    <value>268, 4</value>
+  </data>
+  <data name="m_btnCancel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="m_btnCancel.Size" type="System.Drawing.Size, System.Drawing">
-    <value>75, 23</value>
+    <value>100, 28</value>
   </data>
   <data name="m_btnCancel.TabIndex" type="System.Int32, mscorlib">
     <value>7</value>
@@ -253,10 +268,13 @@
     <value>1</value>
   </data>
   <data name="m_btnHelp.Location" type="System.Drawing.Point, System.Drawing">
-    <value>282, 3</value>
+    <value>376, 4</value>
+  </data>
+  <data name="m_btnHelp.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="m_btnHelp.Size" type="System.Drawing.Size, System.Drawing">
-    <value>75, 23</value>
+    <value>100, 28</value>
   </data>
   <data name="m_btnHelp.TabIndex" type="System.Int32, mscorlib">
     <value>8</value>
@@ -280,10 +298,13 @@
     <value>True</value>
   </data>
   <data name="m_radioBefore.Location" type="System.Drawing.Point, System.Drawing">
-    <value>5, 19</value>
+    <value>7, 23</value>
+  </data>
+  <data name="m_radioBefore.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="m_radioBefore.Size" type="System.Drawing.Size, System.Drawing">
-    <value>56, 17</value>
+    <value>68, 20</value>
   </data>
   <data name="m_radioBefore.TabIndex" type="System.Int32, mscorlib">
     <value>0</value>
@@ -307,10 +328,13 @@
     <value>True</value>
   </data>
   <data name="m_radioAfter.Location" type="System.Drawing.Point, System.Drawing">
-    <value>80, 20</value>
+    <value>107, 25</value>
+  </data>
+  <data name="m_radioAfter.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="m_radioAfter.Size" type="System.Drawing.Size, System.Drawing">
-    <value>47, 17</value>
+    <value>55, 20</value>
   </data>
   <data name="m_radioAfter.TabIndex" type="System.Int32, mscorlib">
     <value>1</value>
@@ -340,10 +364,13 @@
     <value>Top, Left, Right</value>
   </data>
   <data name="dialogDescription.Location" type="System.Drawing.Point, System.Drawing">
-    <value>3, 3</value>
+    <value>4, 4</value>
+  </data>
+  <data name="dialogDescription.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="dialogDescription.Size" type="System.Drawing.Size, System.Drawing">
-    <value>338, 46</value>
+    <value>451, 57</value>
   </data>
   <data name="dialogDescription.TabIndex" type="System.Int32, mscorlib">
     <value>0</value>
@@ -366,13 +393,16 @@
     <value>0</value>
   </data>
   <data name="m_configurationDescription.Location" type="System.Drawing.Point, System.Drawing">
-    <value>3, 55</value>
+    <value>4, 69</value>
+  </data>
+  <data name="m_configurationDescription.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="m_configurationDescription.Multiline" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
   <data name="m_configurationDescription.Size" type="System.Drawing.Size, System.Drawing">
-    <value>338, 31</value>
+    <value>451, 38</value>
   </data>
   <data name="m_configurationDescription.TabIndex" type="System.Int32, mscorlib">
     <value>1</value>
@@ -397,10 +427,13 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>TopDown</value>
   </data>
   <data name="descriptionPanel.Location" type="System.Drawing.Point, System.Drawing">
-    <value>6, 3</value>
+    <value>8, 4</value>
+  </data>
+  <data name="descriptionPanel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="descriptionPanel.Size" type="System.Drawing.Size, System.Drawing">
-    <value>360, 97</value>
+    <value>480, 119</value>
   </data>
   <data name="descriptionPanel.TabIndex" type="System.Int32, mscorlib">
     <value>2</value>
@@ -418,10 +451,16 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>0</value>
   </data>
   <data name="referenceNumberGroup.Location" type="System.Drawing.Point, System.Drawing">
-    <value>6, 279</value>
+    <value>8, 345</value>
+  </data>
+  <data name="referenceNumberGroup.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
+  </data>
+  <data name="referenceNumberGroup.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="referenceNumberGroup.Size" type="System.Drawing.Size, System.Drawing">
-    <value>270, 61</value>
+    <value>360, 75</value>
   </data>
   <data name="referenceNumberGroup.TabIndex" type="System.Int32, mscorlib">
     <value>1</value>
@@ -448,10 +487,13 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>NoControl</value>
   </data>
   <data name="m_radioNone.Location" type="System.Drawing.Point, System.Drawing">
-    <value>153, 20</value>
+    <value>204, 25</value>
+  </data>
+  <data name="m_radioNone.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="m_radioNone.Size" type="System.Drawing.Size, System.Drawing">
-    <value>51, 17</value>
+    <value>61, 20</value>
   </data>
   <data name="m_radioNone.TabIndex" type="System.Int32, mscorlib">
     <value>2</value>
@@ -472,10 +514,16 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>0</value>
   </data>
   <data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
-    <value>6, 106</value>
+    <value>8, 131</value>
+  </data>
+  <data name="groupBox1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
+  </data>
+  <data name="groupBox1.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
-    <value>270, 44</value>
+    <value>360, 54</value>
   </data>
   <data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
     <value>0</value>
@@ -502,10 +550,13 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>RightToLeft</value>
   </data>
   <data name="buttonLayoutPanel.Location" type="System.Drawing.Point, System.Drawing">
-    <value>6, 507</value>
+    <value>8, 624</value>
+  </data>
+  <data name="buttonLayoutPanel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="buttonLayoutPanel.Size" type="System.Drawing.Size, System.Drawing">
-    <value>360, 31</value>
+    <value>480, 38</value>
   </data>
   <data name="buttonLayoutPanel.TabIndex" type="System.Int32, mscorlib">
     <value>18</value>
@@ -529,22 +580,28 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>Top, Bottom, Left, Right</value>
   </data>
   <data name="m_digitNine.Font" type="System.Drawing.Font, System.Drawing">
-    <value>Microsoft Sans Serif, 100pt</value>
+    <value>Segoe UI, 7.8pt</value>
   </data>
   <data name="m_digitNine.Location" type="System.Drawing.Point, System.Drawing">
-    <value>273, 31</value>
+    <value>364, 39</value>
+  </data>
+  <data name="m_digitNine.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="m_digitNine.Size" type="System.Drawing.Size, System.Drawing">
-    <value>25, 23</value>
+    <value>33, 27</value>
   </data>
   <data name="m_digitNine.TabIndex" type="System.Int32, mscorlib">
     <value>18</value>
   </data>
+  <data name="m_digitNine.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
+    <value>MiddleCenter</value>
+  </data>
   <data name="&gt;&gt;m_digitNine.Name" xml:space="preserve">
     <value>m_digitNine</value>
   </data>
   <data name="&gt;&gt;m_digitNine.Type" xml:space="preserve">
-    <value>SIL.FieldWorks.Common.Widgets.FwTextBox, Widgets, Version=8.3.5.25382, Culture=neutral, PublicKeyToken=null</value>
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
   <data name="&gt;&gt;m_digitNine.Parent" xml:space="preserve">
     <value>tableLayoutPanel1</value>
@@ -555,23 +612,32 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
   <data name="m_digitEight.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
     <value>Top, Bottom, Left, Right</value>
   </data>
+  <data name="m_digitEight.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
   <data name="m_digitEight.Font" type="System.Drawing.Font, System.Drawing">
-    <value>Microsoft Sans Serif, 100pt</value>
+    <value>Segoe UI, 7.8pt</value>
   </data>
   <data name="m_digitEight.Location" type="System.Drawing.Point, System.Drawing">
-    <value>243, 31</value>
+    <value>324, 39</value>
+  </data>
+  <data name="m_digitEight.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="m_digitEight.Size" type="System.Drawing.Size, System.Drawing">
-    <value>24, 23</value>
+    <value>32, 27</value>
   </data>
   <data name="m_digitEight.TabIndex" type="System.Int32, mscorlib">
     <value>17</value>
   </data>
+  <data name="m_digitEight.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
+    <value>MiddleCenter</value>
+  </data>
   <data name="&gt;&gt;m_digitEight.Name" xml:space="preserve">
     <value>m_digitEight</value>
   </data>
   <data name="&gt;&gt;m_digitEight.Type" xml:space="preserve">
-    <value>SIL.FieldWorks.Common.Widgets.FwTextBox, Widgets, Version=8.3.5.25382, Culture=neutral, PublicKeyToken=null</value>
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
   <data name="&gt;&gt;m_digitEight.Parent" xml:space="preserve">
     <value>tableLayoutPanel1</value>
@@ -582,23 +648,32 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
   <data name="m_digitSeven.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
     <value>Top, Bottom, Left, Right</value>
   </data>
+  <data name="m_digitSeven.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
   <data name="m_digitSeven.Font" type="System.Drawing.Font, System.Drawing">
-    <value>Microsoft Sans Serif, 100pt</value>
+    <value>Segoe UI, 7.8pt</value>
   </data>
   <data name="m_digitSeven.Location" type="System.Drawing.Point, System.Drawing">
-    <value>213, 31</value>
+    <value>284, 39</value>
+  </data>
+  <data name="m_digitSeven.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="m_digitSeven.Size" type="System.Drawing.Size, System.Drawing">
-    <value>24, 23</value>
+    <value>32, 27</value>
   </data>
   <data name="m_digitSeven.TabIndex" type="System.Int32, mscorlib">
     <value>16</value>
   </data>
+  <data name="m_digitSeven.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
+    <value>MiddleCenter</value>
+  </data>
   <data name="&gt;&gt;m_digitSeven.Name" xml:space="preserve">
     <value>m_digitSeven</value>
   </data>
   <data name="&gt;&gt;m_digitSeven.Type" xml:space="preserve">
-    <value>SIL.FieldWorks.Common.Widgets.FwTextBox, Widgets, Version=8.3.5.25382, Culture=neutral, PublicKeyToken=null</value>
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
   <data name="&gt;&gt;m_digitSeven.Parent" xml:space="preserve">
     <value>tableLayoutPanel1</value>
@@ -609,23 +684,32 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
   <data name="m_digitSix.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
     <value>Top, Bottom, Left, Right</value>
   </data>
+  <data name="m_digitSix.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
   <data name="m_digitSix.Font" type="System.Drawing.Font, System.Drawing">
-    <value>Microsoft Sans Serif, 100pt</value>
+    <value>Segoe UI, 7.8pt</value>
   </data>
   <data name="m_digitSix.Location" type="System.Drawing.Point, System.Drawing">
-    <value>183, 31</value>
+    <value>244, 39</value>
+  </data>
+  <data name="m_digitSix.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="m_digitSix.Size" type="System.Drawing.Size, System.Drawing">
-    <value>24, 23</value>
+    <value>32, 27</value>
   </data>
   <data name="m_digitSix.TabIndex" type="System.Int32, mscorlib">
     <value>15</value>
   </data>
+  <data name="m_digitSix.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
+    <value>MiddleCenter</value>
+  </data>
   <data name="&gt;&gt;m_digitSix.Name" xml:space="preserve">
     <value>m_digitSix</value>
   </data>
   <data name="&gt;&gt;m_digitSix.Type" xml:space="preserve">
-    <value>SIL.FieldWorks.Common.Widgets.FwTextBox, Widgets, Version=8.3.5.25382, Culture=neutral, PublicKeyToken=null</value>
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
   <data name="&gt;&gt;m_digitSix.Parent" xml:space="preserve">
     <value>tableLayoutPanel1</value>
@@ -636,23 +720,32 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
   <data name="m_digitFive.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
     <value>Top, Bottom, Left, Right</value>
   </data>
+  <data name="m_digitFive.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
   <data name="m_digitFive.Font" type="System.Drawing.Font, System.Drawing">
-    <value>Microsoft Sans Serif, 100pt</value>
+    <value>Segoe UI, 7.8pt</value>
   </data>
   <data name="m_digitFive.Location" type="System.Drawing.Point, System.Drawing">
-    <value>153, 31</value>
+    <value>204, 39</value>
+  </data>
+  <data name="m_digitFive.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="m_digitFive.Size" type="System.Drawing.Size, System.Drawing">
-    <value>24, 23</value>
+    <value>32, 27</value>
   </data>
   <data name="m_digitFive.TabIndex" type="System.Int32, mscorlib">
     <value>14</value>
   </data>
+  <data name="m_digitFive.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
+    <value>MiddleCenter</value>
+  </data>
   <data name="&gt;&gt;m_digitFive.Name" xml:space="preserve">
     <value>m_digitFive</value>
   </data>
   <data name="&gt;&gt;m_digitFive.Type" xml:space="preserve">
-    <value>SIL.FieldWorks.Common.Widgets.FwTextBox, Widgets, Version=8.3.5.25382, Culture=neutral, PublicKeyToken=null</value>
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
   <data name="&gt;&gt;m_digitFive.Parent" xml:space="preserve">
     <value>tableLayoutPanel1</value>
@@ -663,23 +756,32 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
   <data name="m_digitFour.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
     <value>Top, Bottom, Left, Right</value>
   </data>
+  <data name="m_digitFour.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
   <data name="m_digitFour.Font" type="System.Drawing.Font, System.Drawing">
-    <value>Microsoft Sans Serif, 100pt</value>
+    <value>Segoe UI, 7.8pt</value>
   </data>
   <data name="m_digitFour.Location" type="System.Drawing.Point, System.Drawing">
-    <value>123, 31</value>
+    <value>164, 39</value>
+  </data>
+  <data name="m_digitFour.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="m_digitFour.Size" type="System.Drawing.Size, System.Drawing">
-    <value>24, 23</value>
+    <value>32, 27</value>
   </data>
   <data name="m_digitFour.TabIndex" type="System.Int32, mscorlib">
     <value>13</value>
   </data>
+  <data name="m_digitFour.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
+    <value>MiddleCenter</value>
+  </data>
   <data name="&gt;&gt;m_digitFour.Name" xml:space="preserve">
     <value>m_digitFour</value>
   </data>
   <data name="&gt;&gt;m_digitFour.Type" xml:space="preserve">
-    <value>SIL.FieldWorks.Common.Widgets.FwTextBox, Widgets, Version=8.3.5.25382, Culture=neutral, PublicKeyToken=null</value>
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
   <data name="&gt;&gt;m_digitFour.Parent" xml:space="preserve">
     <value>tableLayoutPanel1</value>
@@ -690,23 +792,32 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
   <data name="m_digitThree.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
     <value>Top, Bottom, Left, Right</value>
   </data>
+  <data name="m_digitThree.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
   <data name="m_digitThree.Font" type="System.Drawing.Font, System.Drawing">
-    <value>Microsoft Sans Serif, 100pt</value>
+    <value>Segoe UI, 7.8pt</value>
   </data>
   <data name="m_digitThree.Location" type="System.Drawing.Point, System.Drawing">
-    <value>93, 31</value>
+    <value>124, 39</value>
+  </data>
+  <data name="m_digitThree.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="m_digitThree.Size" type="System.Drawing.Size, System.Drawing">
-    <value>24, 23</value>
+    <value>32, 27</value>
   </data>
   <data name="m_digitThree.TabIndex" type="System.Int32, mscorlib">
     <value>12</value>
   </data>
+  <data name="m_digitThree.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
+    <value>MiddleCenter</value>
+  </data>
   <data name="&gt;&gt;m_digitThree.Name" xml:space="preserve">
     <value>m_digitThree</value>
   </data>
   <data name="&gt;&gt;m_digitThree.Type" xml:space="preserve">
-    <value>SIL.FieldWorks.Common.Widgets.FwTextBox, Widgets, Version=8.3.5.25382, Culture=neutral, PublicKeyToken=null</value>
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
   <data name="&gt;&gt;m_digitThree.Parent" xml:space="preserve">
     <value>tableLayoutPanel1</value>
@@ -717,23 +828,32 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
   <data name="m_digitTwo.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
     <value>Top, Bottom, Left, Right</value>
   </data>
+  <data name="m_digitTwo.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
   <data name="m_digitTwo.Font" type="System.Drawing.Font, System.Drawing">
-    <value>Microsoft Sans Serif, 100pt</value>
+    <value>Segoe UI, 7.8pt</value>
   </data>
   <data name="m_digitTwo.Location" type="System.Drawing.Point, System.Drawing">
-    <value>63, 31</value>
+    <value>84, 39</value>
+  </data>
+  <data name="m_digitTwo.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="m_digitTwo.Size" type="System.Drawing.Size, System.Drawing">
-    <value>24, 23</value>
+    <value>32, 27</value>
   </data>
   <data name="m_digitTwo.TabIndex" type="System.Int32, mscorlib">
     <value>11</value>
   </data>
+  <data name="m_digitTwo.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
+    <value>MiddleCenter</value>
+  </data>
   <data name="&gt;&gt;m_digitTwo.Name" xml:space="preserve">
     <value>m_digitTwo</value>
   </data>
   <data name="&gt;&gt;m_digitTwo.Type" xml:space="preserve">
-    <value>SIL.FieldWorks.Common.Widgets.FwTextBox, Widgets, Version=8.3.5.25382, Culture=neutral, PublicKeyToken=null</value>
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
   <data name="&gt;&gt;m_digitTwo.Parent" xml:space="preserve">
     <value>tableLayoutPanel1</value>
@@ -744,23 +864,32 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
   <data name="m_digitOne.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
     <value>Top, Bottom, Left, Right</value>
   </data>
+  <data name="m_digitOne.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
   <data name="m_digitOne.Font" type="System.Drawing.Font, System.Drawing">
-    <value>Microsoft Sans Serif, 100pt</value>
+    <value>Segoe UI, 7.8pt</value>
   </data>
   <data name="m_digitOne.Location" type="System.Drawing.Point, System.Drawing">
-    <value>33, 31</value>
+    <value>44, 39</value>
+  </data>
+  <data name="m_digitOne.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="m_digitOne.Size" type="System.Drawing.Size, System.Drawing">
-    <value>24, 23</value>
+    <value>32, 27</value>
   </data>
   <data name="m_digitOne.TabIndex" type="System.Int32, mscorlib">
     <value>10</value>
   </data>
+  <data name="m_digitOne.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
+    <value>MiddleCenter</value>
+  </data>
   <data name="&gt;&gt;m_digitOne.Name" xml:space="preserve">
     <value>m_digitOne</value>
   </data>
   <data name="&gt;&gt;m_digitOne.Type" xml:space="preserve">
-    <value>SIL.FieldWorks.Common.Widgets.FwTextBox, Widgets, Version=8.3.5.25382, Culture=neutral, PublicKeyToken=null</value>
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
   <data name="&gt;&gt;m_digitOne.Parent" xml:space="preserve">
     <value>tableLayoutPanel1</value>
@@ -771,23 +900,32 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
   <data name="m_digitZero.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
     <value>Top, Bottom, Left, Right</value>
   </data>
+  <data name="m_digitZero.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
   <data name="m_digitZero.Font" type="System.Drawing.Font, System.Drawing">
-    <value>Microsoft Sans Serif, 100pt</value>
+    <value>Segoe UI, 7.8pt</value>
   </data>
   <data name="m_digitZero.Location" type="System.Drawing.Point, System.Drawing">
-    <value>3, 31</value>
+    <value>4, 39</value>
+  </data>
+  <data name="m_digitZero.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="m_digitZero.Size" type="System.Drawing.Size, System.Drawing">
-    <value>24, 23</value>
+    <value>32, 27</value>
   </data>
   <data name="m_digitZero.TabIndex" type="System.Int32, mscorlib">
     <value>4</value>
   </data>
+  <data name="m_digitZero.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
+    <value>MiddleCenter</value>
+  </data>
   <data name="&gt;&gt;m_digitZero.Name" xml:space="preserve">
     <value>m_digitZero</value>
   </data>
   <data name="&gt;&gt;m_digitZero.Type" xml:space="preserve">
-    <value>SIL.FieldWorks.Common.Widgets.FwTextBox, Widgets, Version=8.3.5.25382, Culture=neutral, PublicKeyToken=null</value>
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
   <data name="&gt;&gt;m_digitZero.Parent" xml:space="preserve">
     <value>tableLayoutPanel1</value>
@@ -805,10 +943,13 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>NoControl</value>
   </data>
   <data name="label11.Location" type="System.Drawing.Point, System.Drawing">
-    <value>273, 0</value>
+    <value>364, 0</value>
+  </data>
+  <data name="label11.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 0, 4, 0</value>
   </data>
   <data name="label11.Size" type="System.Drawing.Size, System.Drawing">
-    <value>25, 28</value>
+    <value>33, 35</value>
   </data>
   <data name="label11.TabIndex" type="System.Int32, mscorlib">
     <value>9</value>
@@ -841,10 +982,13 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>NoControl</value>
   </data>
   <data name="label10.Location" type="System.Drawing.Point, System.Drawing">
-    <value>243, 0</value>
+    <value>324, 0</value>
+  </data>
+  <data name="label10.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 0, 4, 0</value>
   </data>
   <data name="label10.Size" type="System.Drawing.Size, System.Drawing">
-    <value>24, 28</value>
+    <value>32, 35</value>
   </data>
   <data name="label10.TabIndex" type="System.Int32, mscorlib">
     <value>8</value>
@@ -877,10 +1021,13 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>NoControl</value>
   </data>
   <data name="label9.Location" type="System.Drawing.Point, System.Drawing">
-    <value>213, 0</value>
+    <value>284, 0</value>
+  </data>
+  <data name="label9.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 0, 4, 0</value>
   </data>
   <data name="label9.Size" type="System.Drawing.Size, System.Drawing">
-    <value>24, 28</value>
+    <value>32, 35</value>
   </data>
   <data name="label9.TabIndex" type="System.Int32, mscorlib">
     <value>7</value>
@@ -913,10 +1060,13 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>NoControl</value>
   </data>
   <data name="label8.Location" type="System.Drawing.Point, System.Drawing">
-    <value>183, 0</value>
+    <value>244, 0</value>
+  </data>
+  <data name="label8.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 0, 4, 0</value>
   </data>
   <data name="label8.Size" type="System.Drawing.Size, System.Drawing">
-    <value>24, 28</value>
+    <value>32, 35</value>
   </data>
   <data name="label8.TabIndex" type="System.Int32, mscorlib">
     <value>6</value>
@@ -949,10 +1099,13 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>NoControl</value>
   </data>
   <data name="label7.Location" type="System.Drawing.Point, System.Drawing">
-    <value>153, 0</value>
+    <value>204, 0</value>
+  </data>
+  <data name="label7.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 0, 4, 0</value>
   </data>
   <data name="label7.Size" type="System.Drawing.Size, System.Drawing">
-    <value>24, 28</value>
+    <value>32, 35</value>
   </data>
   <data name="label7.TabIndex" type="System.Int32, mscorlib">
     <value>5</value>
@@ -985,10 +1138,13 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>NoControl</value>
   </data>
   <data name="label6.Location" type="System.Drawing.Point, System.Drawing">
-    <value>123, 0</value>
+    <value>164, 0</value>
+  </data>
+  <data name="label6.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 0, 4, 0</value>
   </data>
   <data name="label6.Size" type="System.Drawing.Size, System.Drawing">
-    <value>24, 28</value>
+    <value>32, 35</value>
   </data>
   <data name="label6.TabIndex" type="System.Int32, mscorlib">
     <value>4</value>
@@ -1021,10 +1177,13 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>NoControl</value>
   </data>
   <data name="label4.Location" type="System.Drawing.Point, System.Drawing">
-    <value>93, 0</value>
+    <value>124, 0</value>
+  </data>
+  <data name="label4.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 0, 4, 0</value>
   </data>
   <data name="label4.Size" type="System.Drawing.Size, System.Drawing">
-    <value>24, 28</value>
+    <value>32, 35</value>
   </data>
   <data name="label4.TabIndex" type="System.Int32, mscorlib">
     <value>3</value>
@@ -1057,10 +1216,13 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>NoControl</value>
   </data>
   <data name="label3.Location" type="System.Drawing.Point, System.Drawing">
-    <value>63, 0</value>
+    <value>84, 0</value>
+  </data>
+  <data name="label3.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 0, 4, 0</value>
   </data>
   <data name="label3.Size" type="System.Drawing.Size, System.Drawing">
-    <value>24, 28</value>
+    <value>32, 35</value>
   </data>
   <data name="label3.TabIndex" type="System.Int32, mscorlib">
     <value>2</value>
@@ -1093,10 +1255,13 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>NoControl</value>
   </data>
   <data name="label2.Location" type="System.Drawing.Point, System.Drawing">
-    <value>33, 0</value>
+    <value>44, 0</value>
+  </data>
+  <data name="label2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 0, 4, 0</value>
   </data>
   <data name="label2.Size" type="System.Drawing.Size, System.Drawing">
-    <value>24, 28</value>
+    <value>32, 35</value>
   </data>
   <data name="label2.TabIndex" type="System.Int32, mscorlib">
     <value>1</value>
@@ -1126,10 +1291,13 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>True</value>
   </data>
   <data name="label1.Location" type="System.Drawing.Point, System.Drawing">
-    <value>3, 0</value>
+    <value>4, 0</value>
+  </data>
+  <data name="label1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 0, 4, 0</value>
   </data>
   <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
-    <value>24, 28</value>
+    <value>32, 35</value>
   </data>
   <data name="label1.TabIndex" type="System.Int32, mscorlib">
     <value>0</value>
@@ -1153,13 +1321,16 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>19</value>
   </data>
   <data name="tableLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
-    <value>7, 75</value>
+    <value>9, 92</value>
+  </data>
+  <data name="tableLayoutPanel1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="tableLayoutPanel1.RowCount" type="System.Int32, mscorlib">
     <value>2</value>
   </data>
   <data name="tableLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
-    <value>301, 57</value>
+    <value>401, 70</value>
   </data>
   <data name="tableLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
     <value>3</value>
@@ -1180,19 +1351,22 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="m_digitNine" Row="1" RowSpan="1" Column="9" ColumnSpan="1" /&gt;&lt;Control Name="m_digitEight" Row="1" RowSpan="1" Column="8" ColumnSpan="1" /&gt;&lt;Control Name="m_digitSeven" Row="1" RowSpan="1" Column="7" ColumnSpan="1" /&gt;&lt;Control Name="m_digitSix" Row="1" RowSpan="1" Column="6" ColumnSpan="1" /&gt;&lt;Control Name="m_digitFive" Row="1" RowSpan="1" Column="5" ColumnSpan="1" /&gt;&lt;Control Name="m_digitFour" Row="1" RowSpan="1" Column="4" ColumnSpan="1" /&gt;&lt;Control Name="m_digitThree" Row="1" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;Control Name="m_digitTwo" Row="1" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="m_digitOne" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="m_digitZero" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="label11" Row="0" RowSpan="1" Column="9" ColumnSpan="1" /&gt;&lt;Control Name="label10" Row="0" RowSpan="1" Column="8" ColumnSpan="1" /&gt;&lt;Control Name="label9" Row="0" RowSpan="1" Column="7" ColumnSpan="1" /&gt;&lt;Control Name="label8" Row="0" RowSpan="1" Column="6" ColumnSpan="1" /&gt;&lt;Control Name="label7" Row="0" RowSpan="1" Column="5" ColumnSpan="1" /&gt;&lt;Control Name="label6" Row="0" RowSpan="1" Column="4" ColumnSpan="1" /&gt;&lt;Control Name="label4" Row="0" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;Control Name="label3" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="label2" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="label1" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,10,Percent,10,Percent,10,Percent,10,Percent,10,Percent,10,Percent,10,Percent,10,Percent,10,Percent,10" /&gt;&lt;Rows Styles="Percent,50,Percent,50" /&gt;&lt;/TableLayoutSettings&gt;</value>
   </data>
   <data name="m_customNumbersLabel.Location" type="System.Drawing.Point, System.Drawing">
-    <value>6, 45</value>
+    <value>8, 55</value>
+  </data>
+  <data name="m_customNumbersLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="m_customNumbersLabel.Multiline" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
   <data name="m_customNumbersLabel.Size" type="System.Drawing.Size, System.Drawing">
-    <value>346, 38</value>
+    <value>461, 47</value>
   </data>
   <data name="m_customNumbersLabel.TabIndex" type="System.Int32, mscorlib">
     <value>2</value>
   </data>
   <data name="m_customNumbersLabel.Text" xml:space="preserve">
-    <value>To use characters other than 0-9 for homograph and sense numbers enter the characters here:</value>
+    <value>If the writing system uses custom numbers, they will be displayed below. Custom numbers can be specified in writing system configuration.</value>
   </data>
   <data name="&gt;&gt;m_customNumbersLabel.Name" xml:space="preserve">
     <value>m_customNumbersLabel</value>
@@ -1207,10 +1381,13 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>1</value>
   </data>
   <data name="m_writingSystemCombo.Location" type="System.Drawing.Point, System.Drawing">
-    <value>5, 18</value>
+    <value>7, 22</value>
+  </data>
+  <data name="m_writingSystemCombo.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="m_writingSystemCombo.Size" type="System.Drawing.Size, System.Drawing">
-    <value>184, 21</value>
+    <value>244, 24</value>
   </data>
   <data name="m_writingSystemCombo.TabIndex" type="System.Int32, mscorlib">
     <value>1</value>
@@ -1231,10 +1408,13 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>True</value>
   </data>
   <data name="m_writingSystemLabel.Location" type="System.Drawing.Point, System.Drawing">
-    <value>3, 2</value>
+    <value>4, 2</value>
+  </data>
+  <data name="m_writingSystemLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 0, 4, 0</value>
   </data>
   <data name="m_writingSystemLabel.Size" type="System.Drawing.Size, System.Drawing">
-    <value>246, 13</value>
+    <value>310, 16</value>
   </data>
   <data name="m_writingSystemLabel.TabIndex" type="System.Int32, mscorlib">
     <value>0</value>
@@ -1255,10 +1435,13 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>3</value>
   </data>
   <data name="customNumbersPanel.Location" type="System.Drawing.Point, System.Drawing">
-    <value>6, 346</value>
+    <value>8, 428</value>
+  </data>
+  <data name="customNumbersPanel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="customNumbersPanel.Size" type="System.Drawing.Size, System.Drawing">
-    <value>341, 138</value>
+    <value>455, 170</value>
   </data>
   <data name="customNumbersPanel.TabIndex" type="System.Int32, mscorlib">
     <value>22</value>
@@ -1276,10 +1459,13 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>4</value>
   </data>
   <data name="_homographStyleButton.Location" type="System.Drawing.Point, System.Drawing">
-    <value>195, 29</value>
+    <value>260, 36</value>
+  </data>
+  <data name="_homographStyleButton.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="_homographStyleButton.Size" type="System.Drawing.Size, System.Drawing">
-    <value>75, 21</value>
+    <value>100, 26</value>
   </data>
   <data name="_homographStyleButton.TabIndex" type="System.Int32, mscorlib">
     <value>3</value>
@@ -1300,13 +1486,16 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>0</value>
   </data>
   <data name="styleLabel.Location" type="System.Drawing.Point, System.Drawing">
-    <value>3, 3</value>
+    <value>4, 4</value>
+  </data>
+  <data name="styleLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="styleLabel.Multiline" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
   <data name="styleLabel.Size" type="System.Drawing.Size, System.Drawing">
-    <value>335, 24</value>
+    <value>447, 30</value>
   </data>
   <data name="styleLabel.TabIndex" type="System.Int32, mscorlib">
     <value>0</value>
@@ -1327,10 +1516,13 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>1</value>
   </data>
   <data name="_homographStyleCombo.Location" type="System.Drawing.Point, System.Drawing">
-    <value>3, 29</value>
+    <value>4, 36</value>
+  </data>
+  <data name="_homographStyleCombo.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="_homographStyleCombo.Size" type="System.Drawing.Size, System.Drawing">
-    <value>186, 21</value>
+    <value>247, 24</value>
   </data>
   <data name="_homographStyleCombo.TabIndex" type="System.Int32, mscorlib">
     <value>4</value>
@@ -1348,10 +1540,13 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>2</value>
   </data>
   <data name="homographStylePanel.Location" type="System.Drawing.Point, System.Drawing">
-    <value>6, 156</value>
+    <value>8, 193</value>
+  </data>
+  <data name="homographStylePanel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="homographStylePanel.Size" type="System.Drawing.Size, System.Drawing">
-    <value>341, 57</value>
+    <value>455, 70</value>
   </data>
   <data name="homographStylePanel.TabIndex" type="System.Int32, mscorlib">
     <value>21</value>
@@ -1372,10 +1567,13 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>NoControl</value>
   </data>
   <data name="_senseNumberStyleBtn.Location" type="System.Drawing.Point, System.Drawing">
-    <value>195, 27</value>
+    <value>260, 33</value>
+  </data>
+  <data name="_senseNumberStyleBtn.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="_senseNumberStyleBtn.Size" type="System.Drawing.Size, System.Drawing">
-    <value>75, 21</value>
+    <value>100, 26</value>
   </data>
   <data name="_senseNumberStyleBtn.TabIndex" type="System.Int32, mscorlib">
     <value>6</value>
@@ -1396,13 +1594,16 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>0</value>
   </data>
   <data name="_senseStyleLabel.Location" type="System.Drawing.Point, System.Drawing">
-    <value>3, 0</value>
+    <value>4, 0</value>
+  </data>
+  <data name="_senseStyleLabel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="_senseStyleLabel.Multiline" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
   <data name="_senseStyleLabel.Size" type="System.Drawing.Size, System.Drawing">
-    <value>335, 24</value>
+    <value>447, 30</value>
   </data>
   <data name="_senseStyleLabel.TabIndex" type="System.Int32, mscorlib">
     <value>5</value>
@@ -1423,10 +1624,13 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>1</value>
   </data>
   <data name="_senseStyleCombo.Location" type="System.Drawing.Point, System.Drawing">
-    <value>3, 27</value>
+    <value>4, 33</value>
+  </data>
+  <data name="_senseStyleCombo.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="_senseStyleCombo.Size" type="System.Drawing.Size, System.Drawing">
-    <value>186, 21</value>
+    <value>247, 24</value>
   </data>
   <data name="_senseStyleCombo.TabIndex" type="System.Int32, mscorlib">
     <value>7</value>
@@ -1444,10 +1648,13 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>2</value>
   </data>
   <data name="senseNumberStylePanel.Location" type="System.Drawing.Point, System.Drawing">
-    <value>6, 219</value>
+    <value>8, 271</value>
+  </data>
+  <data name="senseNumberStylePanel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="senseNumberStylePanel.Size" type="System.Drawing.Size, System.Drawing">
-    <value>341, 54</value>
+    <value>455, 66</value>
   </data>
   <data name="senseNumberStylePanel.TabIndex" type="System.Int32, mscorlib">
     <value>23</value>
@@ -1471,16 +1678,16 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>0, 0</value>
   </data>
   <data name="mainLayoutTable.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
-    <value>5, 5, 5, 5</value>
+    <value>7, 6, 7, 6</value>
   </data>
   <data name="mainLayoutTable.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
-    <value>3, 0, 0, 0</value>
+    <value>4, 0, 0, 0</value>
   </data>
   <data name="mainLayoutTable.RowCount" type="System.Int32, mscorlib">
     <value>7</value>
   </data>
   <data name="mainLayoutTable.Size" type="System.Drawing.Size, System.Drawing">
-    <value>369, 541</value>
+    <value>492, 666</value>
   </data>
   <data name="mainLayoutTable.TabIndex" type="System.Int32, mscorlib">
     <value>16</value>
@@ -1504,13 +1711,16 @@ Example-string DO NOT LOCALIZE THIS STRING</value>
     <value>True</value>
   </metadata>
   <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
-    <value>6, 13</value>
+    <value>8, 16</value>
   </data>
   <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
-    <value>369, 541</value>
+    <value>492, 666</value>
+  </data>
+  <data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>4, 4, 4, 4</value>
   </data>
   <data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
-    <value>385, 580</value>
+    <value>507, 703</value>
   </data>
   <data name="$this.Text" xml:space="preserve">
     <value>Configure Headword Numbers</value>
diff --git a/Src/xWorks/HeadWordNumbersHelper.cs b/Src/xWorks/HeadWordNumbersHelper.cs
new file mode 100644
index 0000000000..ca9cfc1fec
--- /dev/null
+++ b/Src/xWorks/HeadWordNumbersHelper.cs
@@ -0,0 +1,43 @@
+using System.Collections.Generic;
+
+namespace SIL.FieldWorks.XWorks
+{
+	public static class HeadWordNumbersHelper
+	{
+		/// <summary>
+		/// Splits a given string of digits into a list of Unicode characters, handling surrogate pairs if present.
+		/// The string should contain exactly 10 Unicode characters (which may be represented by more than 10 char values if surrogate pairs are used).
+		/// These unicode characters should map in order from 0 to 9.
+		/// If the string is null, empty, or does not contain exactly 10 Unicode characters, this method returns null.
+		/// Otherwise, it returns a list of the 10 Unicode characters as strings.
+		/// </summary>
+		/// <param name="digits"></param>
+		/// <returns></returns>
+		public static List<string> GetUnicodeCharacters(string digits)
+		{
+			if (!string.IsNullOrEmpty(digits))
+			{
+				// Note that some digits use surrogate pairs in UTF-16, so it's not as simple as splitting into a char array.
+				// We need to check for surrogate pairs to split everything correctly into Unicode characters.
+				var characters = new List<string>();
+				for (int i = 0; i < digits.Length; i++)
+				{
+					// The first part of a surrogate pair is the high surrogate and the second part is the low surrogate.
+					if (char.IsHighSurrogate(digits[i]) && i + 1 < digits.Length &&
+						char.IsLowSurrogate(digits[i + 1]))
+					{
+						characters.Add(digits.Substring(i, 2));
+						i++; // Skip the next char since it's part of the surrogate pair we just added.
+					}
+					else
+					{
+						characters.Add(digits[i].ToString());
+					}
+				}
+				if (characters.Count == 10)
+					return characters;
+			}
+			return null;
+		}
+	}
+}
diff --git a/Src/xWorks/IHeadwordNumbersView.cs b/Src/xWorks/IHeadwordNumbersView.cs
index 5d65a339aa..487c96076e 100644
--- a/Src/xWorks/IHeadwordNumbersView.cs
+++ b/Src/xWorks/IHeadwordNumbersView.cs
@@ -16,7 +16,6 @@ namespace SIL.FieldWorks.XWorks
 	public interface IHeadwordNumbersView
 	{
 		event EventHandler RunStylesDialog;
-		event EventHandler CustomDigitsChanged;
 		bool HomographBefore { get; set; }
 		bool ShowHomograph { get; set; }
 		bool ShowHomographOnCrossRef { get; set; }
@@ -26,6 +25,5 @@ public interface IHeadwordNumbersView
 		string HomographWritingSystem { get; set; }
 		IEnumerable<CoreWritingSystemDefinition> AvailableWritingSystems { set; }
 		IEnumerable<string> CustomDigits { get; set; }
-		void SetWsFactoryForCustomDigits(ILgWritingSystemFactory factory);
 	}
 }
\ No newline at end of file
diff --git a/Src/xWorks/xWorksTests/DictionaryConfigurationModelTests.cs b/Src/xWorks/xWorksTests/DictionaryConfigurationModelTests.cs
index 98691d9b36..62ae86eef8 100644
--- a/Src/xWorks/xWorksTests/DictionaryConfigurationModelTests.cs
+++ b/Src/xWorks/xWorksTests/DictionaryConfigurationModelTests.cs
@@ -501,7 +501,6 @@ public void Save_HomographConfigurationValidatesAgainstSchema()
 					Label = "root",
 					HomographConfiguration = new DictionaryHomographConfiguration
 					{
-						CustomHomographNumbers = "0;1;2;3;4;5;6;7;8;9",
 						HomographNumberBefore = true,
 						HomographWritingSystem = "en",
 						ShowHwNumber = true,
@@ -1234,7 +1233,6 @@ public void CanDeepClone()
 			// If we were on NUnit 4
 			// Assert.That(model.HomographConfiguration, Is.EqualTo(clone.HomographConfiguration).UsingPropertiesComparer());
 			// But we're not, so we have to do it manually or implement otherwise unnecessary equality interfaces
-			Assert.That(model.HomographConfiguration.CustomHomographNumbers, Is.EqualTo(clone.HomographConfiguration.CustomHomographNumbers));
 			Assert.That(model.HomographConfiguration.HomographNumberBefore, Is.EqualTo(clone.HomographConfiguration.HomographNumberBefore));
 			Assert.That(model.HomographConfiguration.HomographWritingSystem, Is.EqualTo(clone.HomographConfiguration.HomographWritingSystem));
 			Assert.That(model.HomographConfiguration.ShowHwNumber, Is.EqualTo(clone.HomographConfiguration.ShowHwNumber));
diff --git a/Src/xWorks/xWorksTests/HeadwordNumbersControllerTests.cs b/Src/xWorks/xWorksTests/HeadwordNumbersControllerTests.cs
index 68b78005de..8eee92e86b 100644
--- a/Src/xWorks/xWorksTests/HeadwordNumbersControllerTests.cs
+++ b/Src/xWorks/xWorksTests/HeadwordNumbersControllerTests.cs
@@ -9,6 +9,7 @@
 using SIL.LCModel.Core.WritingSystems;
 using SIL.LCModel.Core.KernelInterfaces;
 using SIL.LCModel.DomainImpl;
+using SIL.WritingSystems;
 
 namespace SIL.FieldWorks.XWorks
 {
@@ -138,49 +139,34 @@ public void Save_SetsModelContents_Reversal()
 		public void Ok_Enabled_WithNoCustomNumbers()
 		{
 			// Test enabled on initial setup
-			var view = new TestHeadwordNumbersView {OkButtonEnabled = false};
+			var view = new TestHeadwordNumbersView { OkButtonEnabled = false };
 			var model = new DictionaryConfigurationModel();
 			var controller = new HeadwordNumbersController(view, model, Cache);
 			// verify ok button enabled on setup with no numbers
-			Assert.That(view.OkButtonEnabled, Is.True, "Ok not enabled by controller constructor");
-			view.OkButtonEnabled = false;
-			// verify ok button enabled when event is triggered and there are no custom numbers
-			view.TriggerCustomDigitsChanged();
-			Assert.That(view.OkButtonEnabled, Is.True, "Ok button not enabled when event is fired");
+			Assert.That(view.OkButtonEnabled, Is.True,
+				"Ok not enabled by controller constructor");
 		}
 
 		[Test]
-		public void Ok_Enabled_WithAllTenNumbers()
+		public void CustomDigits_Default_Ok_Enabled_WhenNotAllTenNumbersSet()
 		{
-			// Test enabled on initial setup
-			var view = new TestHeadwordNumbersView { OkButtonEnabled = false };
-			var model = new DictionaryConfigurationModel
+			var model = new DictionaryConfigurationModel()
 			{
-				HomographConfiguration = new DictionaryHomographConfiguration
-				{
-					CustomHomographNumbers = "a,b,c,d,e,f,g,h,i,j"
-				}
+				HomographConfiguration = new DictionaryHomographConfiguration()
 			};
-			var controller = new HeadwordNumbersController(view, model, Cache);
-			// verify ok button enabled on setup with 10 numbers
-			Assert.That(view.OkButtonEnabled, Is.True, "Ok not enabled by controller constructor");
-			view.OkButtonEnabled = false;
-			// verify ok button enabled when event is triggered and there are 10 custom numbers
-			view.TriggerCustomDigitsChanged();
-			Assert.That(view.OkButtonEnabled, Is.True, "Ok button not enabled when event is fired");
-		}
+			var view = new TestHeadwordNumbersView()
+			{
+				HomographWritingSystem = model.HomographConfiguration.HomographWritingSystem = "en"
+			};
+			var writingSystem = Cache.ServiceLocator.WritingSystemManager.Get(view.HomographWritingSystem);
+			writingSystem.NumberingSystem = NumberingSystemDefinition.CreateCustomSystem("1");
 
-		[Test]
-		public void Ok_Disabled_WhenNotAllTenNumbersSet()
-		{
-			// Test enabled on initial setup
-			var view = new TestHeadwordNumbersView();
-			var model = new DictionaryConfigurationModel();
-			var controller = new HeadwordNumbersController(view, model, Cache);
-			view.OkButtonEnabled = true;
-			view.CustomDigits = new List<string> { "1" };
-			view.TriggerCustomDigitsChanged();
-			Assert.That(view.OkButtonEnabled, Is.False, "Ok button still enabled after event is fired");
+			// If the writing system doesn't have a valid numbering system with 10 digits,
+			// the view should fall back to the default latin digits and still enable Ok.
+			var defaultNumberingSystem = NumberingSystemDefinition.CreateCustomSystem("0123456789");
+			var testController = new HeadwordNumbersController(view, model, Cache);
+			Assert.That(view.CustomDigits, Is.EqualTo(HeadWordNumbersHelper.GetUnicodeCharacters(defaultNumberingSystem.Digits)));
+			Assert.That(view.OkButtonEnabled, Is.True, "Ok button not enabled after event is fired");
 		}
 
 		[Test]
@@ -235,20 +221,21 @@ public void ConstructorSetsDefaultWritingSystemInView()
 		}
 
 		[Test]
-		public void ConstructorSetsCustomHeadwordNumbersInView()
+		public void ConstructorSetsHeadwordWritingSystemNumbersInView()
 		{
-			var view = new TestHeadwordNumbersView();
-			var model = new DictionaryConfigurationModel
+			var model = new DictionaryConfigurationModel()
 			{
-				HomographConfiguration = new DictionaryHomographConfiguration
-				{
-					CustomHomographNumbers = "a;b;c;d;e;f;g;h;i;j;k"
-				}
+				HomographConfiguration = new DictionaryHomographConfiguration()
 			};
-			// ReSharper disable once UnusedVariable
-			// SUT
+			var view = new TestHeadwordNumbersView()
+			{
+				HomographWritingSystem = model.HomographConfiguration.HomographWritingSystem = "en"
+			};
+			var writingSystem = Cache.ServiceLocator.WritingSystemManager.Get(view.HomographWritingSystem);
+			writingSystem.NumberingSystem = NumberingSystemDefinition.CreateCustomSystem("abcdefghij");
+
 			var testController = new HeadwordNumbersController(view, model, Cache);
-			Assert.That(view.CustomDigits, Is.EqualTo(model.HomographConfiguration.CustomHomographNumberList));
+			Assert.That(view.CustomDigits, Is.EqualTo(HeadWordNumbersHelper.GetUnicodeCharacters(writingSystem.NumberingSystem.Digits)));
 		}
 
 		public class TestHeadwordNumbersView : IHeadwordNumbersView
@@ -267,13 +254,7 @@ public class TestHeadwordNumbersView : IHeadwordNumbersView
 #pragma warning restore 67
 			public IEnumerable<CoreWritingSystemDefinition> AvailableWritingSystems { private get; set; }
 			public IEnumerable<string> CustomDigits { get; set; }
-			public event EventHandler CustomDigitsChanged;
 			public bool OkButtonEnabled { get; set; }
-
-			internal void TriggerCustomDigitsChanged()
-			{
-				CustomDigitsChanged(this, null);
-			}
 			public void SetWsFactoryForCustomDigits(ILgWritingSystemFactory factory) { }
 		}
 	}
