在TX Text Control控件中可以通过ApplicationField类来处理MS Word中的表单域,域的类型、名称和参数都可以非常方便的修改,不过在TX Text Control中不会显示出CheckBox或DropDownList这样的控件。
不过TX Text Control 提供了对这些输入表单域的扩展能力,在TX Text Control的DocumentServer中包含了FieldAdapter类型,通过这些域适配器类型,我们可以非常方便的处理MS Word中的表单域和合并域类型。
在TX Text Control中一个域总显示为一段文本,比如DropDownList域会显示当前选择项的文本,同时TX Text Control也将DropDownList中其它项存储在该域中。用户单击该域时会触发TextFieldClicked事件,此时就可以在该域所在的位置显示一个.NET的标准ComboBox控件。下面的代码演示了如何使用FieldAdapter来修改特定FormDropDownList域的值。
FormDropDown fddField = new FormDropDown(ApplicationField); // create a new System.Windows.Forms.ComboBox and add the // FormDropDown's items ComboBox cb = new ComboBox(); cb.Items.AddRange(fddField.ListEntries.ToArray()); Point cbLocation = new Point((fddField.ApplicationField.Bounds.Location.X - textControl1.ScrollLocation.X) / dpiX, (fddField.ApplicationField.Bounds.Location.Y - textControl1.ScrollLocation.Y) / dpiX); cb.Location = cbLocation; cb.Tag = fddField; cb.SelectedText = fddField.ApplicationField.Text; cb.SelectedIndexChanged += new EventHandler(cb_SelectedIndexChanged); cb.LostFocus += new EventHandler(cb_LostFocus); textControl1.Controls.Add(cb); cb.Focus(); 复制代码
下面是程序的运行截图:
源码下载:VS2010 + TX TextControl 17.0