标记文本域是在文本中插入的一些标记,在文字处理器中可以通过标记文本来实现非常广泛的文字处理功能。例如:
标记文本域可以由任意字符组合而成,TX 中最多可以包含65535个标记文本域,TX会维护这些文本域的位置和编号信息,同时还可以进行加载、保存和剪贴板操作。 该章节相应的源代码可以在TX Text Control.NET的安装目录中找到:
第一节:创建标记文本域 该节主要演示如何创建标记文本域和标记文本域的Click事件。示例程序中包含一个菜单项【Insert Field!】、两个Text Control控件,其中一个是普通文本编辑窗口,另一个是提示信息窗口。以下代码演示如何创建一个标记文本域: private void mnuInsertField_Click(object sender, System.EventArgs e) { TXTextControl.TextField newField = new TXTextControl.TextField(); newField.Text = "--------"; newField.ID = fieldID; fieldID += 1; textControl1.TextFields.Add(newField); } 复制代码通过以上代码在当前输入位置插入一个文本域,并且给文本域的ID属性设置一个位置的值。当鼠标移动至文本域时Text Control 会将光标变为手型光标,以此提示用户当前位置有一个文本域,此时点击文本域会触发TextFieldClicked事件,而且会弹出一个显示当前文本域编号的提示框。 private void textControl1_TextFieldClicked(object sender, TXTextControl.TextFieldEventArgs e) { // Field has been clicked on, update text of second TX and display it textControl2.Text = "Field clicked, ID: " + e.TextField.ID; textControl2.BringToFront(); } private void textControl1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) { textControl1.BringToFront(); } 复制代码第二节:书签 该示例演示如何使用标记文本域来创建书签。首先我们将用文本域的编号来访问该文本域。示例程序中包含一个【Bookmar】菜单,包含两个子菜单项【Insert】和【Go to...】。点击【Insert】菜单时会在当前位置创建一个文本域;如果选择文本不为空会将选中的文本转换为标记文本域,代码如下: private void mnuBookmark_Insert_Click(object sender, System.EventArgs e) { if (textControl1.Text == "") { MessageBox.Show("Cannot insert a bookmark if the Text Control is empty."); } else if (textControl1.Selection.Length == 0) { textControl1.Selection.Length = 1; } else { TXTextControl.TextField newField = new TXTextControl.TextField(); newField.ID = fieldID; newField.Text = textControl1.Selection.Text; textControl1.Selection.Text = ""; fieldID += 1; textControl1.TextFields.Add(newField); } } 复制代码在文档中输入一些文本并插入一些书签,然后选择【Go To...】菜单,此时会弹出一个对话框,可以在对话框中输入书签的编号,如果该书签存在点击【OK】按钮会自动跳转到书签所在的位置,实现代码如下: private void cmdOK_Click(object sender, System.EventArgs e) { if (Convert.ToInt32(textBox1.Text) > tx.TextFields.Count) { MessageBox.Show ("Invalid bookmark number!"); } else { foreach (TXTextControl.TextField field in tx.TextFields) { if (field.ID == Convert.ToInt32(textBox1.Text)) { tx.Selection.Start = field.Start - 1; tx.Selection.Length = field.Length; } } } Close(); } 复制代码 private void cmdOK_Click(object sender, System.EventArgs e) { TXTextControl.TextField field = new TXTextControl.TextField(); field.Name = textBox1.Text; field.Text = tx.Selection.Text; tx.Selection.Text = ""; tx.TextFields.Add(Field); Close(); } 复制代码通过以上操作,我们创建了书签并指定了书签的名字。下面将在【Goto Bookmark】对话框中显示所有书签的名字,实现代码如下: private void frmGotoDialog_Load(object sender, System.EventArgs e) { foreach (TXTextControl.TextField Field in tx.TextFields) { ComboBox1.Items.Add(Field.Name); } } 复制代码在用户选择书签之后点击【OK】按钮时,将通过遍历全部书签的方式找到用户指定的书签,实现代码如下: private void cmdOK_Click(object sender, System.EventArgs e) { foreach (TXTextControl.TextField field in tx.TextFields) { if (field.Name == comboBox1.Text) { tx.Selection.Start = field.Start - 1; tx.Selection.Length = field.Length; } } Close(); } 复制代码 |
|
|
关于葡萄城
葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。
葡萄城热门产品
活字格
打通现有软件,快速定制面向未来的个性化应用

SpreadJS
可嵌入您系统的在线Excel的纯前端表格控件

Wyn商业智能
可与企业自有系统深度集成,增强数据分析的 BI 工具
