首页 | 互联网 | IT动态 | 网络设备 | 服务器 | IDC | 安全 | Cisco | Windows | Linux | Java | .Net | Oracle | CIW | 华为 | 专题
IT技术 | 网页设计 | 平面设计 | 电子书下载 | 教学视频 | 方案 | 数字网校 | 直播室 | 虚拟考场 | 面授培训 | 搜索 | 博客 | 沙龙 | 论坛
首页 | JAVA | C# | VB | VB.NET | C/C++ | delphi | 工程管理 | 其他语言 | 论坛
免费注册一站通帐号,参与直播、论坛、下载、博客、网摘、评论,展现我的风采!
您现在的位置: 中国IT实验室 >> 桌面开发 >> VB.net >> 文章正文
用vb.net实现写字板程序报告
来源:中国IT实验室整理  时间:2007-4-7

  1、先看看界面
 

用vb.net实现写字板程序报告(图一)

  声明一个全局boolean变量,用来标记richtextbox中文本变化和保存情况

Dim bSave As Boolean 

Private Sub rtbox_TextChanged(ByVal sender As Object,
ByVal e As System.EventArgs) Handles rtbox.TextChanged

  文本发生了改变,则将变量bSave置为False 

bSave = False

End Sub

  2、关于在ComboBox中加载用户系统上的字体列表的问题  

  加载用户系统上的字体到写字板ComboBox的字体栏上,为了实现他,也花费了少时间,最终在VS.NET自带的Help中找到了答案。

  下面这段代码是加载当地系统中所有字体到Combobox中

Dim allfonts As FontFamily

For Each allfonts In System.Drawing.FontFamily.Families 

comboxFont.Items.Add(allfonts.Name)

Next

用vb.net实现写字板程序报告(图三)

  3、状态栏的隐藏  

  就是在“查看”菜单中有个check按钮,当checked=true时点击它状态栏就隐藏,反之就取消隐藏。

Private Sub mStatusbar_Click(ByVal sender As System.Object,

ByVal e As System.EventArgs)

Handles mStatusbar.Click

If mStatusbar.Checked = True Then

StatusBar1.Visible = False

mStatusbar.Checked = False

Else

StatusBar1.Visible = True

mStatusbar.Checked = True

End If

End Sub

  4、关于字体样式的问题

  我觉得这是这个程序中最艰难的一部分,为了实现这个功能,查阅了不少资料,最终得以实现不用字体对话框设置,只用工具栏上按钮设置就能实现几个字体样式并用的功能。

用vb.net实现写字板程序报告(图四)

  上图中的“样”字就是既加粗又斜体又下划线,不要以为这个功能实现很简单,因为最初我发现如果一个字是加粗的,当我给他选择斜体按钮时,发现她原来的粗体样式消失了,变成只有斜体样式了,也就是说字体的样式不能并用,后来终于发现解决的方法。

  其中的一个“or”确实十分关键,其了决定性作用。关键还是对VB的语法不太熟悉,如果是C++语言就好了。下面看看代码:

  下面这个函数是用来增加字体的样式,比如加粗,下划线等等 

Public Sub AddFontStyle(ByVal rtb As RichTextBox, _

ByVal style As System.Drawing.FontStyle) 

  如果选择的文本长度大于0,将一个一个字符地增加样式。 

  这是十分必要的!因为被选择的字符可能同时含有多种样式,而我们的原意只是保持所有原来的样式,同时增加上指定的样式。

If rtb.SelectionLength > 0 Then

Dim selStart As Integer = rtb.SelectionStart

Dim selLength As Integer = rtb.SelectionLength

Dim currFont As System.Drawing.Font

Dim currStyle As System.Drawing.FontStyle

Dim i As Integer

For i = 0 To selLength - 1

  选择的字符

rtb.Select(selStart + i, 1)

  得到被选择字符的字体

currFont = rtb.SelectionFont

  得到现在的样式,同时增加指定的样式

currStyle = currFont.Style

currStyle = currStyle Or style

  然后使字符拥有新的字体和新的样式,有可能出现异常,因为不是所有字体都支持所有的样式,所以这里捕捉异常。 

Try

rtb.SelectionFont = New Font(currFont.FontFamily, currFont.Size, _ currStyle)

Catch ex As Exception

End Try

Next

rtb.Select(selStart, selLength)

Else

rtb.SelectionFont = New Font(rtb.SelectionFont, _

rtb.SelectionFont.Style Or style)

End If

End Sub

  同样,取消样式也有同样的问题,当然也有同样的解决方法

  下面这个函数是用来去除用户指定的字体样式,如加粗,下划线等等 

Public Sub RemoveFontStyle(ByVal rtb As RichTextBox, _

ByVal style As System.Drawing.FontStyle) 

  如果选择文本的长度大于0,将一个一个去除样式。

  这是十分必要的!因为选择的文本中可能有许多不同的样式,而我们的原意是

  保持所有原来的样式,除了那个要被去除的样式

If rtb.SelectionLength > 0 Then

Dim selStart As Integer = rtb.SelectionStart 

Dim selLength As Integer = rtb.SelectionLength 

Dim currFont As System.Drawing.Font

Dim currStyle As System.Drawing.FontStyle

Dim i As Integer

For i = 0 To selLength - 1 

  选择一个字符

rtb.Select(selStart + i, 1) 

  得到被选择字符的字体

currFont = rtb.SelectionFont 

  得到被选择字符的样式,同时去除要被除去的那个样式

currStyle = currFont.Style

currStyle = currStyle And Not style 

  然后赋予这些字符新的字体和样式

rtb.SelectionFont = New Font(currFont.FontFamily,

currFont.Size, _ currStyle)

Next 

  保持原有的选择

rtb.Select(selStart, selLength)

Else

rtb.SelectionFont = New Font(rtb.SelectionFont, _

rtb.SelectionFont.Style And Not style)

End If

End Sub

 

 

[1] [2] [3] 下一页  

【责编:Lili】

中国IT教育热线咨询

相关文章
VB.NET中的多窗体编程:升级到 .NET
解析VB的事件驱动编程
编写快速高效的VB程序
VB中运用反射原理优化程序代码
VB中数据集合对象的应用
递归过程在VB中的应用实例
VB/VB.NET/C#导出到Excel的方法
关于Visual Basic 9.0的动态标识符
推荐文章
· 用C#创建COM对象
· IT管理十大失误及其对策
· VC中利用MFC设计绘图程序初步
· JAVA中对象创建和初始化过程
· C语言中的位域的使用
· 浅谈Java桌面应用程序开发
· C#的前途如何?
· 几种VC++数据库开发技术的相对比较
 精彩友情推荐
·锐捷交换机报价
·锐捷交换机
·锐捷网络网络交换机
·smc交换机
·smc交换机报价
·IDC资讯大全
·机房品质万里行
·IDC托管必备知识
·全国IDC报价
·网站推广优化
最新更新 推荐文章
·Visual Basic 9.0隐式类型的局部…09-30
·JMX+J2SE5.0实现Web应用的安全管…09-30
·多线程、Socket技术及委托技术的…09-21
·Visual C#多线程参数传递浅析09-21
·浅谈Java中利用JCOM实现仿Excel编…09-21
·基于Java的界面布局DSL的设计与实…09-21
·Java开发中的事件驱动模型实例详…09-21
·并发工程原则应用到软件项目中09-06
·Delphi初学者应小心的六大陷阱09-06
·VC开发多语言界面支持的简单方法09-06
·用C#创建COM对象09-06
·用C#创建COM对象09-06
·IT管理十大失误及其对策08-30
·VC中利用MFC设计绘图程序初步08-23
·JAVA中对象创建和初始化过程08-23
·C语言中的位域的使用08-09
·浅谈Java桌面应用程序开发08-09
·C#的前途如何?08-02
·几种VC++数据库开发技术的相对比较07-12
·用Visual C#实现网络封包监视07-12
·VB.NET中的TextBox控件详解07-12
·VB.NET实现PC与掌上电脑PPC的双向通信07-05
  培训中心