簡體   English   中英

如何:通過鼠標位置從標簽獲取文本索引? C#

[英]How to: Get text index from label by mouse position? C#

我有一個包含這樣的文本的標簽:

00 AA FA 08 0F FF 84 7A A7 22 27 94 73 9A 7F D3 00 AA FA 08 0F FF 84 7A A7 22 27 94 73 9A 7F D3 00 AA FA 08 0F FF 84 7A A7 22 27 94 73 9A 7F D3 00 AA FA 08 0F FF 84 7A A7 22 27 94 73 9A 7F D3 00 AA FA 08 0F FF 84 7A A7 22 27 94 73 9A 7F D3

因此,由於這是一個標簽(我不想使用TextBox),所以我需要知道獲取光標位置標簽中文本索引的方法。

假設在最后的文本中,鼠標是在AA上方單擊的。

00 AA FA 08 0F FF 84 7A A7 22 27 94 73 9A 7F D3 00 AA FA 08 0F FF 84 7A A7 22 27 94 73 9A 7F D3 00 AA FA 08 0F FF 84 7A A7 22 27 94 73 9A 7F D3 00 AA FA 08 0F FF 84 7A A7 22 27 94 73 9A 7F D3 00 AA FA 08 0F FF 84 7A A7 22 27 94 73 9A 7F D3

然后,我需要獲取“ AA”的索引,有辦法嗎?,(無論我是否必須使用Win32 API)

我真的什么也找不到...

我正在使用Windows窗體。

是Winforms還是WPF?

您是否嘗試過使用onMouseMove事件(http://msdn.microsoft.com/zh-cn/library/system.windows.forms.control.mousemove%28v=vs.71%29.aspx)並從mousemoveeventargs? 那應該給一個位置。 您可以計算字體大小並計算出是否可以將位置除以字符數以找到位置。

要注意的一件事是,確保所使用的字體具有相等寬度的字符,其中許多字符沒有。

我不會推薦我從建築學角度建議的方法,因為它非常hacky,不太可能用於其他用途。 要消除所有錯誤,還需要一段時間。

我建議可以使用WPF,並且可以將listview與可放入網格的模板一起使用。 參見以下示例: http : //www.mindscapehq.com/blog/index.php/2007/12/04/five-steps-to-wpf-data-visualisation/該示例說明了如何更改列表框的外觀將元素放置在x,y坐標中。 默認情況下,列表視圖支持檢查是否選擇了項目。 如果您對Winform感到困惑,也許我的原始方法沒問題,或者動態生成大量標簽會更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM