在纸质或者基于Web的调查问卷中经常会用到复选款,下面我们就来谈一下TX Text Control中如何插入和处理MS Word中的复选款。
png
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
tx_checkbox_sample.zip
(17.27 KB, 下载次数: 570)
|
|