如何从多行文本框中获取换行?

2024-01-10

在我的 windows.forms C# 应用程序中,我有一个 WordWrap = true 的多行文本框。将 Text 属性设置为长字符串后,我需要获取通过换行生成的所有行。它与 Lines[] 属性不同,因为我的文本不包含换行符。 我已经找到了使用图形 MeasureString 函数的解决方案,但考虑到文本框控件已经完成了换行,这似乎有点额外的工作 - 为什么我应该再次做同样的工作? 有什么方法可以获取文本框将文本换行的行吗?

谢谢


您可以检查以下解决方案吗?

public Form1()
{
    InitializeComponent();
    textBox1.Text = "This is my text where I want to check how I can get wrapped content as seperate lines automatically !! This is my text which I want to check how I can get wrapped content as seperate lines automatically !!";
}

private void button1_Click(object sender, EventArgs e)
{
    bool continueProcess = true;
    int i = 1; //Zero Based So Start from 1
    int j = 0;
    List<string> lines = new List<string>();
    while (continueProcess)
    {
        var index = textBox1.GetFirstCharIndexFromLine(i);
        if (index != -1)
        {
            lines.Add(textBox1.Text.Substring(j, index - j));
            j = index;
            i++;
        }
        else
        {
            lines.Add(textBox1.Text.Substring(j, textBox1.Text.Length - j));
            continueProcess = false;
        }
    }
    foreach(var item in lines)
    {
        MessageBox.Show(item);
    }
}

GetFirstCharIndexFromLine 参考 https://msdn.microsoft.com/en-us/library/system.windows.forms.textboxbase.getfirstcharindexfromline(v=vs.110).aspx

文本框中的行编号从零开始。如果行号 参数大于文本框中的最后一行, GetFirstCharIndexFromLine 返回 -1。

GetFirstCharIndexFromLine 返回 a 的第一个字符索引 物理线。物理线是显示的线,而不是 指定的线路。显示的行数可以大于 由于自动换行而分配的行数。例如,如果您分配 将两行长行添加到 RichTextBox 控件并设置 Multiline 和 WordWrap 为 true 时,两条长分配线会产生四个物理(或 显示行)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从多行文本框中获取换行? 的相关文章

  • 我应该把 try/catch 和“using”语句放在哪里? [复制]

    这个问题在这里已经有答案了 可能的重复 try catch using 正确的语法 https stackoverflow com questions 4590490 try catch using right syntax 我想try c
  • JSON.Net 反序列化返回“null”

    我正在使用 JSON Net 反序列化 JSON 字符串 JSON 字符串是 string testJson Fruits Apple color red size round Orange Pro
  • 无法将 std::min 传递给函数,std::min 的副本有效

    Passing std min函数无法编译 我复制了 libcpp 声明std min进入我的源文件并且它可以工作 std 版本有什么问题 clang 和 gcc 也会发生同样的情况 在 Godbolt 上测试 https godbolt
  • 我如何知道 C 程序的可执行文件是在前台还是后台运行?

    在我的 C 程序中 我想知道我的可执行文件是否像这样在前台运行 a out 或者像这样 a out 如果你是前台工作 getpgrp tcgetpgrp STDOUT FILENO or STDIN FILENO or STDERR FIL
  • 并行化斐波那契序列生成器

    我正在学习并行化 在一项练习中 我得到了一些我应该提高性能的算法 其中之一是斐波那契数列生成器 array 0 0 array 1 1 for q 2 q lt MAX q array q array q 1 array q 2 我怀疑 这
  • 如果 JSON.NET 中的值为 null 或空格,则防止序列化

    我有一个对象需要以这样的方式序列化 即 null 和 空白 空或只是空格 值都不会序列化 我不控制对象本身 因此无法设置属性 但我知道所有属性都是字符串 环境NullValueHandling显然 忽略 只能让我找到解决方案的一部分 它 似
  • while循环中的变量初始化

    我有一个可以分块读取文件的函数 public static DataObject ReadNextFile 数据对象看起来像这样 public DataObject public string Category get set And ot
  • 通过 C# Mailkit / Mimekit 发送电子邮件,但出现服务器证书错误

    Visual Studio 2015 中的 0 代码 1 我正在使用 Mailkit 最新版本 1 18 1 1 从我自己的电子邮件服务器发送电子邮件 2 电子邮件服务器具有不受信任的自签名证书 3 我在代码中添加了以下两行 以忽略服务器证
  • 时间:2019-03-17 标签:c++fstream并发访问

    如果从不同的进程 线程同时访问文件会发生什么 据我所知 没有锁定文件的标准方法 只有操作系统特定的功能 就我而言 文件将被经常读取而很少写入 现在如果A打开一个文件进行读取 ifstream 并开始读取块 和B打开相同的文件进行写入 ofs
  • 无法为 wsdl 文件创建服务引用

    I have wsdl文件和xsd我本地机器上的文件 我想在项目中添加服务引用 我没有网络服务 我只有wsdl file 我收到以下错误 The document was understood but it could not be pro
  • 为什么 f(i = -1, i = -1) 是未定义的行为?

    我正在读关于违反评估顺序 http en cppreference com w cpp language eval order 他们举了一个令我困惑的例子 1 如果标量对象上的副作用相对于同一标量对象上的另一个副作用是无序的 则行为未定义
  • C 中使用 getrandom 实现随机浮点数

    我试图生成一个介于 0 和 1 之间的随机浮点数 无论是在 0 1 还是 0 1 对我来说都不重要 网上关于此的每个问题似乎都涉及rand 呼叫 播种time NULL 但我希望能够每秒多次调用我的程序 并每次都获得不同的随机数 这引导我找
  • 浮点字节序?

    我正在为实时海上模拟器编写客户端和服务器 并且由于我必须通过套接字发送大量数据 因此我使用二进制数据来最大化可以发送的数据量 我已经了解整数字节顺序以及如何使用htonl and ntohl为了规避字节顺序问题 但我的应用程序与几乎所有模拟
  • 从 NumPy 数组到 Mat 的 C++ 转换 (OpenCV)

    我正在围绕 ArUco 增强现实库 基于 OpenCV 编写一个薄包装器 我试图构建的界面非常简单 Python 将图像传递给 C 代码 C 代码检测标记并将其位置和其他信息作为字典元组返回给 Python 但是 我不知道如何在 Pytho
  • C 语言中的 Alpha 混合 2 RGBA 颜色[重复]

    这个问题在这里已经有答案了 可能的重复 如何快速进行阿尔法混合 https stackoverflow com questions 1102692 how to do alpha blend fast 对 2 个 RGBA 整数 颜色进行
  • 如何将 int 作为“void *”传递给线程启动函数?

    我最初有一个用于斐波那契变量数组的全局变量 但发现这是不允许的 我需要进行基本的多线程处理并处理竞争条件 但我无法在 pthread 创建中将 int 作为 void 参数提供 我尝试过使用常量指针 但没有成功 由于某些奇怪的原因 void
  • 如果“嵌入式”SQL 2008 数据库文件不存在,如何创建它?

    我使用 C ADO Net 和在 Server Management Studio 中创建的嵌入式 MS SQL 2008 数据库文件 附加到 MS SQL 2008 Express 创建了一个数据库应用程序 有人可以向我指出一个资源 该资
  • 如何在c linux中收听特定接口上的广播?

    我目前可以通过执行以下操作来收听我编写的简单广播服务器 仅广播 hello int fd socket PF INET SOCK DGRAM 0 struct sockaddr in addr memset addr 0 sizeof ad
  • 使用 C# 动态创建按钮并按预定义的顺序放置它们

    NET 4 5 C 创建 Windows 窗体 我想动态创建和添加按钮并为其分配单击事件 但希望它们以特定的方式动态放置 就像图像一样 我的问题是如何以上述方式动态放置按钮 即 4x4 格式 一行 4 个按钮 4 列 但行数不受限制 是否可
  • 嵌入式二进制资源 - 如何枚举嵌入的图像文件?

    我按照中的说明进行操作这本书 http www apress com book view 9781430225492 关于资源等的章节 我不太明白的是 如何替换它 images Add new BitmapImage new Uri Ima

随机推荐

  • Visual Studio 命令栏“名称”

    在 Visual Studio 2010 中 您可以创建的唯一选项是 菜单栏 上 工具 下的命令栏 在某些情况下 我想知道如何将命令栏放置在标准栏上 或者在右键单击项目文件时找到 Example Microsoft VisualStudio
  • 如何递归调用 WriteJson?

    我使用 Json Net 当我序列化一个Department2对象和WriteJson 被调用我希望它被递归地调用每个Telephone2像我一样的物体ReadJson 我怎么做 using System using Newtonsoft
  • 使用完全外连接连接 pandas 中的两个数据帧

    我在 pandas 中有两个数据框 如下所示 EmpID 是两个数据帧中的主键 df first pd DataFrame 1 A 1000 2 B np NaN 3 np NaN 3000 4 D 8000 5 E 6000 column
  • 限制直接 API 网关调用,除非来自 CloudFront

    我们在 API 前面创建了一个 CloudFront 是否可以限制来自 CloudFront 之外的 API 调用 当前设置 调用者 gt API 网关端点 gt Lambda 调用者 gt CloudFront 端点 gt API 网关端
  • Android GCM 消息发送时间过长

    我在我的应用程序中使用 GCM 但遇到了问题 大多数时候我会立即收到消息 但有时消息会在 5 分钟后收到 一条接着一条 就像它们被困在路上一样 这是正常的吗 客户端手机上的GCM框架部分使用TCP连接在端口 5228 上 此连接用于推送通知
  • 检查一个数组是否是另一个数组的子集

    关于如何检查该列表是否是另一个列表的子集有什么想法吗 具体来说 我有 List
  • 这总是GDB调试程序的地址吗?

    我将缩小我的问题范围 对于同一程序 GDB 中的入口地址保持不变 即使在重新启动后 以及在重写源代码后 这是为什么 例如0x80483f4是起始地址 0x80483f4
  • 为什么纯Python不能完全编译? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 为什么纯Python不能完全编译 编译或解释是实现的特征 而不是语言的特征 那么 难道不应该存在一些完全预先编译为本机代码的 Pyth
  • PHP:从未调用过 __autoload 函数

    所以 我有xampp 我在 ZendServer 上测试了这段代码 结果相同 在 php exe a index php 之后我有这个 Interactive mode enabled Fatal error Class Main not
  • 如何连接到第一行

    我将使用一个具体但假设的例子 Each Order通常只有一个行项目 Orders OrderGUID OrderNumber FFB2 STL 7442 1 3EC6 MPT 9931 8A 行项目 LineItemGUID Order
  • CUDA 内核可以是虚拟函数吗?

    这个问题非常简单 但让我概述一下我的框架 我有一个抽象类AbstractScheme表示一种计算类型 方程的一种离散化 但这并不重要 每个实现都必须提供一个方法来返回方案名称 并且必须实现一个受保护的函数 即 CUDA 内核 基本抽象类提供
  • 如何更改导航栏标题中链接和导航丸中链接的文本颜色(在闪亮的应用程序中)?

    这是我的闪亮应用程序的编辑版本 library shiny library bslib ui lt tagList fluidPage titlePanel tags head tags style HTML navbar default
  • Grails,使用 withTransaction 插入大量数据会导致 OutOfMemoryError

    我正在使用 Grails 1 1 beta2 我需要将大量数据导入到我的 Grails 应用程序中 如果我重复实例化一个 grails 域类然后保存它 性能会慢得令人无法接受 以从电话簿导入人员为例 for each person in l
  • 将变量传递给 jenkins 管道中的 powershell 脚本块

    有没有办法在 powershell 脚本中使用 groovy 变量 我的示例脚本如下 node stage Invoke Installation def stdoutpowershell def serverName env fqdn w
  • Vuex 模块中的 Nuxtjs Axios CORS 错误

    我正在使用 Nuxtjs 和内置 Vuex 模块以及 Nuxtjs 的官方 axios 我试图从本地服务器获取数据 但它总是抛出 CORS 错误 因此 我对 Github 的公共端点进行了 API 调用 但没有成功 仅在控制台中收到 COR
  • 为什么通过 Putty 的 SSH 命令与通过 PHP 的 phpseclib 的 SSH 命令的工作方式不同?

    我正在编写一个脚本来自动从我的 Windows 开发 PC 部署到共享托管服务器 根据我是通过 Putty 还是 PHP 执行命令 我会得到不同的结果 两者都在我的电脑上运行 在 putty 中 当我通过 SSH 登录服务器时 我可以运行如
  • PHP 数组...空括号的含义是什么?

    我遇到了一些示例代码 如下所示 form submit annotate admin settings submit 为什么 submit 后面有一个空的括号 里面什么都没有 这意味着什么 谁能给我举个例子吗 通常 根据我的理解 这可能是错
  • 双递归定义列表的双无限列表

    Context 我问的是修补递归定义的列表 https stackoverflow com q 53988970 12274另一天 我现在尝试通过在 2D 列表 列表的列表 上操作来将其提升一个级别 我将使用帕斯卡三角形作为示例 例如这个美
  • 如何在字符串中找到匹配的大括号对?

    假设我有一个字符串 付费 8个工作时间 公司规则 现在我想检查这个完整的字符串是否用括号括起来 基本上我想检查字符串是否是这样的 付费 8个工作时间 公司规则 如果它已经用括号括起来 那么我将保留它原样 否则我会将括号应用于完整的字符串 以
  • 如何从多行文本框中获取换行?

    在我的 windows forms C 应用程序中 我有一个 WordWrap true 的多行文本框 将 Text 属性设置为长字符串后 我需要获取通过换行生成的所有行 它与 Lines 属性不同 因为我的文本不包含换行符 我已经找到了使