Задание картинки в ToolStripButton
Глупый вопрос, но не могу найти решения:
имеется ToolStrip, на нем есть стандартные кнопки (New, Edit, e.t.c..). У них в качестве Image выставлен System.Image.Brush . Но нигде нет опции, позволяющей выбрать из стандартных MS иконок. Перерыл инет, все, что нашел, это список кодов картинок и их изображение здесь , но это применимо к свойству FaceId, которое применяется в панели MS Office. А я хотел бы использовать стандартные иконки в программе. Отсюда и вопрос: как в C# задать на кнопке изображение со стандартной панели (дискета, лист и т.д.)? |
|
Да нет, ресурсы то я использовать умею :) ВОт на Вашем скрине есть стандартные изображения напротив пунктов меню Copy, Cut, и т.д.(ножницы и т.д.). Вот их как использовать? При создании ToolStrip в VS 2008 есть опция - Insert Standart Menu - вставляет New, Copy, Paste с иконками. Как их выставить своим кнопкам?
|
если бы на winapi, я бы закачал с ресурсов какого-нить shell32.dll или comctl32.dll. C# такое позволяет?
типа так: LoadIcon(GetModuleHandle("comctl32.dll"), ID_CUT); |
Delirium вот, так же подумали и в MS. Ведь когда выбрать опцыю Insert Standart Menu для ToolStrip, в EE редакциях так же доступна
, Скрин из VB.NET 2008 EE в проекте в файл Form1.Design.cs добавляются соответствующие строчки кода загрузки иконок из файла ресурсов Form1.resx, в котором уже добавлены все эти ресурсы (после опцыи Insert Standart Menu). Скрин из C# 2008 EE А что собственно мешает заказывать Insert Standart Menu, убрать неугодные кнопки, вытягивать из добавленного автоматически ресурс файла нужны иконки? Может по причине тривиальности этого не было найдено в поисковиках. Наверное, была мысль что эти иконки должны быть глобально в системе и что они оттуда коллективно тянутся? Видео MS решило обезопасить пользователя и в его прогу ресурсы кидать эти по принципу "всё своё носи с собой". pva да конечно, из .NET прог есть доступ практически ко всем Win32 API. Нужно только известить прогу, что бы она искала нужную функцию не в нёдрах MS .NET Framework. На VB.NET это будет так Код:
Public Declare Function LoadIcon Lib "user32" Alias "LoadIconA" (ByVal hInstance As Long, ByVal lpIconName As String) As Long |
Цитата:
Цитата:
Вопрос решен, большое спасибо. |
Хотя интересно, почему ж MS не предусмотрели стандартной возможности в C# вставлять стандартные иконки без танцев с бубнами.......
|
При использовании Win32 API в .Net прогах теряется хоть какая-то но многоплатформенность. Может и не актуально, но всё же.
К системным иконкам всё же непосредственно из .Net доступ есть, а именно через SystemIcons Ножниц и других Офис элементов там нет, но те что в окне сообщений (MsgBox) доступны - здесь найдутся SystemIcons.Application SystemIcons.Asterisk SystemIcons.Error SystemIcons.Exclamation SystemIcons.Hand SystemIcons.Information SystemIcons.Question SystemIcons.Warning SystemIcons.WinLogo |
Время: 21:00. |
Время: 21:00.
© OSzone.net 2001-