【问题标题】:Can I use VB.net to build a powerful application which incorporates extensive word processing capabilities?我可以使用 VB.net 构建一个包含大量文字处理功能的强大应用程序吗?
【发布时间】:2016-01-26 16:55:41
【问题描述】:

我知道“重新发明轮子”反对这种努力。但是,我对 DIY 路径感兴趣,主要是因为我想自己弄清楚如何让它发挥作用。我读过很多书,出于不同的原因需要学习 VB.net,所以我探索了在 VB 中这样做(用一种石头推理杀死 2 只鸟)。但是,在 Pro WPF 4.5 in VB (Apress) 中,有一段话指出:

“RichTextBox 控件还公开了一个丰富的编程模型,该模型提供了大量的扩展点,因此您可以插入自己的逻辑,这允许您将 RichTextBox 用作您自己的自定义文本编辑器的构建块。一个缺点是速度。与之前的大多数富文本控件一样,WPF RichTextBox 可能有点迟缓。如果您需要保存大量数据,请使用复杂的逻辑来处理按键,或者添加诸如自动格式化之类的效果(例如,Visual Studio 的语法突出显示或 Word 的拼写检查器下划线),WPF RichTextBox 可能无法提供您需要的性能。”(第 898-899 页)。

书中似乎没有提供有关此问题的其他指导。从我在网上找到的情况来看,似乎 MS Office 应用程序仍然是用 C++ 编写的,而且它们显然没有这些限制。这里的性能问题仅仅是这个特定控件的一个功能,我可以在其中开发自己的没有这些限制的 WPF 控件,还是这更多是由 .Net 平台的开销引起的问题?无论哪种方式,我都需要学习 VB.Net,但如果 .Net 不是开发此类应用程序的好环境,我不想浪费时间使用这个项目来学习它。

【问题讨论】:

  • 是的,你应该没问题。如果您遇到性能问题,几乎肯定有办法解决。
  • 我认为性能问题警告是由于richtextbox() 中的refresh() 方法引起的。大对象会减慢不断刷新对象的表单。使用 microsoft word 时,仅刷新当前视图,而文档的其余部分在后台模式下更新。
  • @jdweng... 我还没有看过 refresh() 方法,但只是看到了你的答案。但是,我想我明白你的意思了……richtextbox() 中的所有成员都会在每次进行更改时被迭代和刷新,而不是只刷新被更改的元素(即段落、运行等) .您是否碰巧知道 refresh() 方法是否可覆盖?也许我可以简单地扩展 richtextbox() 并更改该方法的逻辑。
  • 这不是很好,根据我的经验,WPF 应用程序往往很慢。自从 UI 在 WPF 中大量重写以来,Visual Studio 就变得不一样了。不过,这不是 VB.NET 语言 或 .NET Framework 的限制。

标签: vb.net


【解决方案1】:

创建您自己的继承标准 RichTextBox 的 RichTextBox

Public Class MyRichTextBox
    Inherits RichTextBox

    Public Shadows Sub Refresh()


    End Sub



End Class

【讨论】:

    猜你喜欢
    • 2019-04-22
    • 1970-01-01
    • 2012-12-24
    • 1970-01-01
    • 2019-08-01
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多