Как: получить текстовый индекс от метки по позиции мыши?C # - PullRequest
2 голосов
/ 15 декабря 2011

У меня есть этикетка с таким текстом:

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 9473 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 9A7F D3

Итак, поскольку это метка (я не хочу использовать TextBox), мне нужно знать, как получить индекс текста в метке в позициикурсор.

Предположим, что в последнем тексте мышь была нажата вверх АА.

00 AA FA 08 0FFF 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 847A 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 Forms.

1 Ответ

1 голос
/ 15 декабря 2011

Это winforms или WPF?

Вы пытались использовать событие onMouseMove (http://msdn.microsoft.com/en-us/library/system.windows.forms.control.mousemove%28v=vs.71%29.aspx) и получать местоположение из mousemoveeventargs? Это должно дать местоположение. Вы можете рассчитать размер шрифта и рассчитать, если вы можете разделить местоположение на количество символов в найти позицию.

Следует обратить внимание на то, чтобы убедиться, что используемый шрифт содержит символы одинаковой ширины, а многие из них этого не делают.

Я бы не рекомендовал подход, который я предлагаю архитектурно, потому что он очень хакерский и вряд ли пригоден для повторного использования. Также потребуется время, чтобы избавиться от всех ошибок.

Я бы порекомендовал использовать WPF и использовать просмотр списка с шаблоном, который превращается в сетку. См. Этот пример здесь: http://www.mindscapehq.com/blog/index.php/2007/12/04/five-steps-to-wpf-data-visualisation/ В этом примере показано, как можно изменить внешний вид списка для размещения элементов в координатах x, y. По умолчанию список просмотра поддерживает проверку, выбраны элементы или нет. Если вы застряли с winforms, возможно, мой оригинальный подход в порядке, или, может быть, лучше динамически генерировать множество меток.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...