所有者绘制文本框在WinForms中使用

所有者绘制文本框在WinForms中使用,第1张

概述所有者绘制文本框在WinForms中使用

我需要一个精益和平均文本框解决scheme。 RichTextBoxcertificate速度太慢,所以我想要去所有者绘图或自定义控件构build的方式。

我需要的是可以处理大量文本内容的文本框,并通过在单词或单个字符周围绘制彩色背景来提供简单的高亮显示。 重要的是,文本string本身不包含标记,但标记的单词索引是分开存储的。 相对于文本string开头的索引(在讨论.NET TextBox时也被称为Text属性)。

我认为这将不得不涉及在我自己的控制下绘制文本,因为windows编辑控件将无法做到我需要的东西。

我的应用程序是windows窗体。 做这种控制的正确方法是什么?有没有例子?

是否有可能确定哪个进程启动我的.Net应用程序?

我可以通过.Net获得与安装的打印机相关的图标吗?

.NET windows商店数据

如何使.Net独立的.Net框架(依赖)独立的'EXE'文件从.Net

PowerShell 3:每个命令执行结果在“types初始值设定项抛出一个exception”错误

在.NET下可以快速控制吗? (已经假定需要本地API调用)。 或者这是更好的在C ++完成?

另外1:我认为这样做的方式是由用户MarkIsMobile在SO问题描绘在.NET Compact Framework的TextBox中的回答。 看看,TextBox的OnPaint并不是很有用,因为TextBox是一个相当古怪的控件。 MarkIsMobile答案中概述的方法如下:

用您自己的C#委托replace默认的windows过程

但仍然保持“默认”行为,并调用“oldwindowsProc”

在此之后做你自己的习惯绘图

我还没有尝试过,但有兴趣看到更多的例子。

也。 我目前的做法是(相同?)通过NativeWindow类访问控制并重写WndProc。 我只是简单地画一些透明度的文字来创build我所追求的“颜色标记”效果,实际上这种效果很好 – 但并不完美。 ( 有没有方法绘制位图混合,只着色背景,而不是在前景的文字?)

windows播放audio有多准确(按时间)?

如何防止Mono垂直(在linux上)在WinForms应用程序中扩展窗口?

linux单声道等效的.NET windows服务

检查第二个显示器是否以.NET连接(双显示器设置,笔记本电脑和扩展坞)

ItemDataBound为windows窗体DataGrIDVIEw?

你不能逼真地实现你自己的TextBox,编写自己的文本编辑器就是惩罚。 使用ScintillaNET之类的东西。

编写自己的可滚动标签是有点可行的。 从双缓冲面板开始,使用OnPaint绘制文本。 如果你不实现自动换行,这只会是一个改进,因为你必须把所有的文本都放在滚动的第一个可见的行之前,这使得开始绘制的地方变得非常昂贵。 计算autoScrollMinSize是昂贵的,因为你必须扫描整个文本来计算换行符,确保你不必经常更新文本。

一般来说,可能性很大,你只会发现为什么TextBox是如此慢。 通过将文本数量限制为人们可以合理预期想要阅读的内容,保持其高性能。 这并不多。 我通过跟踪每个附加文本的长度,并在超过65536个字符时将其丢弃一半。 一个不错的回合数

总结

以上是内存溢出为你收集整理的所有者绘制文本框在WinForms中使用全部内容,希望文章能够帮你解决所有者绘制文本框在WinForms中使用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1292869.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存