TX Text Control 邮件合并(八)插入MS Word 中FORCHECKBOX 字段
在纸质或者基于Web的调查问卷中经常会用到复选款,下面我们就来谈一下TX Text Control中如何插入和处理MS Word中的复选款。TX Text Control 通过ApplicationField类型来对MS Word中的复选款提供支持。本文的示例代码中还会用到一个DocumentServer命名控件中的FieldAdapter类,该类型提供了对最常用域类型的适配功能,比如DATE、MERGEFIELD和FORMCHECKBOX。下面的代码演示了如何在TX Text Control中插入一个复选框域:textControl1.Selection.FontName = "Arial Unicode MS";
// 通过特殊的适配器类型创建一个复选框
FormCheckBox clsCheckBox = new
TXTextControl.DocumentServer.Fields.FormCheckBox();
clsCheckBox.Text = UNCHECKED;
clsCheckBox.Enabled = true;
clsCheckBox.ApplicationField.Editable = false;
clsCheckBox.ApplicationField.DoubledInputPosition = true;
// 将 ApplicationField 添加到文档中
textControl1.ApplicationFields.Add(clsCheckBox.ApplicationField);
当用户在域中触发单击事件时,先判断是否是FormCheckBox域,如果点击的是FormCheckBox,将改变FormCheckBox的选中状态,代码如下:private void textControl1_TextFieldClicked(object sender,
TXTextControl.TextFieldEventArgs e)
{
// cast the field to an ApplicationField
ApplicationField field = e.TextField as ApplicationField;
if (field != null)
{
// check whether the field is a checkbox field
if ((field.TypeName == "FORMCHECKBOX"))
{
// create a new adapter field
FormCheckBox chkb = new FormCheckBox(field);
if (chkb.Enabled == false)
return;
// change the checked state
if (field.Text == UNCHECKED)
{
chkb.Checked = true;
chkb.Text = CHECKED;
}
else if (field.Text == CHECKED)
{
chkb.Checked = false;
chkb.Text = UNCHECKED;
}
}
}
}
TX Text Control中的这些特殊类型的域域普通的文本域类型,可以像文本一样在文档中拖拽移动,TX Text Control中插入的复选框可以保存到DOCX、DOC和RTF格式的文档中。
源码:VS2010 + TX TextControl 17.0
页:
[1]