C# 行选择器
本文关键字:选择器 行选 | 更新日期: 2023-09-27 18:33:59
我有一个应用程序,用户需要选择某一行才能开始解析操作。 我的想法是有一个简单的滚动列表,用户可以在其中选择他们想要的行,当单击列表时,列表将关闭并关闭程序。
不过,我想对控件进行自定义编码,使其看起来尽可能像普通文本框,但突出显示用户当前选择的行(并在单击时返回行号)。
当然,我不仅想要代码,这是我需要学习做的事情;但是有什么好的资源可以帮助我创建这个新控件吗? 尤其是需要的垂直滚动条(文本可以长达数百行)。
谢谢
与其创建自己的自定义控件,不如只使用列表框来存储潜在用户想要选择的所有信息。 您要查找的所有功能都已内置到控件中。 如果我遗漏了什么,请进一步解释。
您可以(理论上)通过在 SelectionStart 上拆分(插入符号位置)来重用任何 *TextBox 控件,这将获取第一个 CRLF 的索引(第一个子字符串中的 LastIndexOf),并通过设置选择长度来选择整行直到下一个(第二个子字符串中的 IndexOf)。但如前所述 - 标准列表框是要走的路。
这是一个静态文本区域,还是基于某些用户输入或复制/粘贴操作? 我问是因为您可能会遇到一些潜在的包装问题,并且您仍然必须处理<IE8无法正确处理SelectionStart的问题。>
虽然不是完全优雅,但您可以根据换行符拆分文本,并为内容使用一系列 span/div 标签,或者(颤抖)一个表格,您可以在其中使用 jQuery 抓取最接近的 DOM 元素以获得特定的行偏移量。 我不认为文本区域将是您要做的事情的最佳方法,因为它确实不是这种块级别选择的最佳选择。