b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

RichTextBox控件 可读取rtf

电脑杂谈  发布时间:2020-02-10 23:02:08  来源:网络整理

c richtextbox rtf_richtextbox rtf_richtextbox wpf

rtf 模版格式($:Text为内容):

public const String DefaultRtfTemplate =

@"{/rtf1/ansi/ansicpg936/deff0/deflang1033/deflangfe2052{/fonttbl{/f0/fnil/fcharset134 /'cb/'ce/'cc/'e5;}}"+

@"/viewkind4/uc1/pard/lang2052/f0/fs18$:Text}";

public static String GetDefaultRtf(String content)

{

return DefaultRtfTemplate.Replace("$:Text",content);

}

public static String GetRefContent(content)

{

System.Windows.Forms.RichTextBox rtBox = new System.Windows.Forms.RichTextBox();

rtBox.Rtf = GetDefaultRtf(content);

returnrtBox.Text;

}

与常用的TextBox一样,RichTextBox控件派生于TextBoxBase。所以,它与TextBox共享许,但许是不同的。TextBox常用于从用户处获取短文本字符串,而RichTextBox用于显示跟输入格式化的文本(例如,黑体、下划线和粗体)。它使用标准的格式化文本,称为Rich Text Format (富文本格式)或 RTF。

在里面的实例中,我们使用了标准的TextBox。也可以使用RichTextBox来完成该任务。实际上,如前面的样例所示,可以删除textBoxOutput 文本框,在它的位置上插入一个同名的RichTextBox,这个例子都会像以往那种运行。

如果这些文本框比上一节介绍的文本框更高级,我们都会希望它有一些新属性。表15-11中列举了RichTextBox的一些常见属性。

表 15-11

名 称

描 述

CanRedo

如果上一个被撤销的操作可以使用Redo重复,这个属性就是true

CanUndo

如果可以在RichTextBox上撤销上一个操作,这个属性就是true,注意,CanUndo在TextBoxBase中定义,所以也可以用于TextBox控件

RedoActionName

这个属性包括借助Redo方法执行的操作名称

DetectUrls

把这个属性设定为true,可以让控件检测URL,并格式化它们(在浏览器中是具有下划线的部分)

它对应于Text属性,但包括RTF格式的文本

SelectedRtf

使用这个属性可以获得或修改控件中被选中的RTF格式文本。如果把这种文本复制到另一个应用程序中,例如Word,该文本会保留所有的格式化信息

SelectedText

与SelectedRtf一样,可以使用这个属性获取或修改被选中的文本。但与该属性的RTF版本不同,所有的格式化信息就会丢失

SelectionAlignment

它表示选中文本的对齐方法,可以是Center, Left 或 Right

SelectionBullet

使用这个属性可以确认选中的文本是否格式化为项目符号的格式,或使用它插入或删除项目符号

BulletIndent

使用这个属性可以选定项目符号的缩进像素值

SelectionColor

这个属性可以设置选中文本的颜色

SelectionFont

这个属性可以设置选中文本的图标

SelectionLength

使用这个属性可以设定或获得选中文本的长度

c richtextbox rtf_richtextbox rtf_richtextbox wpf

SelectionType

这个属性包括了选中文本的信息。它可以确认是选取了一个或多个OLE对象,还是仅选取了文本

ShowSelectionMargin

如果把这个属性设定为truerichtextbox rtf,在RichTextBox 的右边还会出现一个页边距,这将使用户最容易选用文本

UndoActionName

如果用户选择撤销某个动作,该属性将获得该动作的名称

SelectionProtected

把这个属性设定为true,可以选定不设置文本的这些个别

从后面的列表可以看出,大多数新属性都与选中的文本有关。这是因为在用户处理其文本时,对他们应用的任何格式化操作都是对客户选择下来的文本进行的。万一没有选择出文本,格式化操作就从鼠标所在的位置起初应用,该位置称为插入点。

RichTextBox使用的大多数事件与TextBox使用的事件同样,表15-12中有几个有趣的新事件。

表 15-12

名 称

描 述

LinkedClick

在用户点击文本中的链接时,引发该事件

Protected

在用户尝试更改已经标记为受保护的文本时,引发该事件

(续表)

名 称

描 述

SelectionChanged

在选中文本出现差异时,引发该事故。如果因这些因素不期望用户更改选中的文本,就可以在该事件中禁止设置

在以下的实例中,将建立一个非常基本的文本编辑器。它表明了怎样修改文本的基本格式,如何读取和保存RichTextBox中的文本。为了简洁起见,这个例子被加载和储存到固定的文件中。

试试看:RichTextBox示例

与以往一样,首先设计窗体:

(1) 在C:/BegVCSharp/Chapter15目录下构建一个新的C# Windows应用程序richtextbox rtf,命名为RichTextBoxTest。

(2) 创建窗体,如图15-14所示。文本框textSize应是一个TextBox控件。richTextBoxText文本框应是一个RichTextBox控件。

图 15-14

(3) 如图15-14所示命名控件。

(4) 除了文本框以外,把其它控件的Text属性设定为其控件名称(但表示该控件类型的个别不算)。

(5) 把textBoxSize文本框的Text属性改为10。

(6) 锚定控件,如表15-13所示。

表 15-13

控 件 名 称

Anchor值

buttonLoad 和 buttonSave

Bottom

RichTextBoxText

Top, Left, Bottom, Right

其他控件

(7) 把窗体的MinimumSize属性值设置为Size属性的值。

示例的说明

前面是该实例的可见部分,下面添加代码。双击Bold按钮,在代码中添加Click事件处理程序。下面是该事件的代码:

private void buttonBold_Click(object sender, EventArgs e)

richtextbox wpf_richtextbox rtf_c richtextbox rtf

{

Font oldFont;

Font newFont;

// Get the font that is being used in the selected text

oldFont = this.richTextBoxText.SelectionFont;

// If the font is using bold style now, we should remove the

// Formatting

if (oldFont.Bold)

newFont = new Font(oldFont, oldFont.Style & ~FontStyle.Bold);

else

newFont = new Font(oldFont, oldFont.Style | FontStyle.Bold);

// Insert the new font and return focus to the RichTextBox

this.richTextBoxText.SelectionFont = newFont;

this.richTextBoxText.Focus();

}

首先获得当前选中文本使用的图标,并把它赋给一个局部变量。然后检测一下选中文本是否为黑体。如果是,就消除黑体修改;否则就设定黑体。使用oldFont作为原型,创建一个新字体,但按照需要添加或删除黑体格式。

最后,把新字体赋给选中的文本,把焦点返回给RichTextBox。Font对象详见第33章。

buttonItalic 和 buttonUnderline的事件处理程序的代码与前面的代码同样,但检测相关风格的代码不同。双击Italic 和 Underline两个按钮,添加以下的代码:

private void buttonItalic_Click(object sender, EventArgs e)

{

Font oldFont;

Font newFont;

// Get the font that is being used in the selected text

oldFont = this.richTextBoxText.SelectionFont;

// If the font is using Italic style now, we should remove it

if (oldFont.Italic)

newFont = new Font(oldFont, oldFont.Style & ~FontStyle.Italic);

else

newFont = new Font(oldFont, oldFont.Style | FontStyle.Italic);

// Insert the new font

this.richTextBoxText.SelectionFont = newFont;

this.richTextBoxText.Focus();

}

private void buttonUnderline_Click(object sender, System.EventArgs e)

{

Font oldFont;

Font newFont;

// Get the font that is being used in the selected text

oldFont = this.richTextBoxText.SelectionFont;

// If the font is using Underline style now, we should remove it

if (oldFont.Underline)

newFont = new Font(oldFont, oldFont.Style & ~FontStyle.Underline);

else

newFont = new Font(oldFont, oldFont.Style | FontStyle.Underline);

// Insert the new font

richtextbox rtf_c richtextbox rtf_richtextbox wpf

this.richTextBoxText.SelectionFont = newFont;

this.richTextBoxText.Focus();

}

双击最后一个格式化按钮Center,添加以下的代码:

private void buttonCenter_Click(object sender, System.EventArgs e)

{

if (this.richTextBoxText.SelectionAlignment == HorizontalAlignment.Center)

this.richTextBoxText.SelectionAlignment = HorizontalAlignment.Left;

else

this.richTextBoxText.SelectionAlignment = HorizontalAlignment.Center;

this.richTextBoxText.Focus();

}

这里需要检查一下另一个属性SelectionAlignment,看看选中的文本是否即将居中对齐,因为我们期望按钮像一个开关这样运作。如果文本已居中,就使它左对齐,否则就使它居中。HorizontalAlignment是一个枚举,其值可以是Left、Right、Center、Justify和 NotSet。在本例中,只检测一下是否修改了Center,如果终于修改了,就把对齐方法修改为Left。如果不是,就设置为Center。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-140347-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 马中裕
      马中裕

      也可以先把我们的民用渔船去相关海域打鱼作业

    每日福利
    热点图片
    拼命载入中...