Я программирую winforms, используя C# и vb.net.
Мне нравятся стрелки, используемые в кодеруше.
для тех, кто не видел стрелок coderush, пожалуйста, посмотрите это изображение.

(source: aspnetpro.com)
http://www.aspnetpro.com/productreviews/2004/08/asp200408bn_p/asp200408bn_p_image002.jpg
Я хочу, чтобы в моей программе было что-то подобное. Единственная разница в том, что я буду использовать его для выделения текстовых полей и кнопок.
Мне нужна только стрелка, текст на стрелке не важен.
Так что, возможно, мне нужно сделать общую функцию, например DrawHighlightArrow (имя элемента управления)
и ему каким-то образом удастся нарисовать стрелку рядом с этим элементом управления
Пожалуйста, предложите хороший способ решить эту проблему на C# или Vb.net
Спасибо
Анна
Привет, Кент, я делаю приложение winform. У меня и VS2005, и VS2008. Я использую как C#, так и vb.net





Переопределите метод OnPaint в форме и используйте метод DrawImage () для объекта из свойства PainteEventArgs.Graphics, чтобы нарисовать растровое изображение стрелки.
Напрашивается вопрос: графический объект который? Стрелка, вероятно, будет визуально охватывать несколько элементов управления. Я считаю, что это было в основе этого вопроса.
Относится ли этот комментарий к последней редакции (501829) моего ответа?
Привет, Маркси, я попробую это сделать. Большое вам спасибо.
Проблема здесь может заключаться в том, что область рисования, занятая текстовыми полями и кнопками, может быть недоступна для рисования в обработчике рисования (обрезанные дочерние элементы) / или будет стерта / перерисована этими дочерними элементами.
Возможно, потребуется создать подкласс элемента управления текстовым полем.
Вы мог создаете настраиваемую форму с прозрачным фоном, рисуете на ней свою стрелку с помощью GDI + (используя описанную выше технику marxidad или просто перетаскивая на нее PictureBox и обрабатывая событие Paint).
Затем просто создайте новый экземпляр формы стрелки поверх существующей «родительской» формы (вы, возможно, захотите установить для TopMost значение true) и запустите таймер, чтобы он исчез.
Единственное, о чем следует быть осторожным, это ...
Есть действительно хорошая библиотека под названием Locus Effects здесь. Пойдите, проверьте это, он делает именно то, что вы хотите.
С какой технологией пользовательского интерфейса вы работаете? Пожалуйста, уточните, пометив теги повторно и упомянув в своем вопросе.