Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Динамическая смена курсора


Автор: th1nker 26.3.2009, 23:32
Привет всем!!!
Я тут разрабатываю в качестве курсовой программу(векторный редактор), и возникла 
одна проблема. Мне необходимо, чтобы при выборе определенного инструмента
в моей программе(например, создание прямоугольника) менялся курсор. А как его поменять 
я не знаю. В файл ресурсов добавляются только иконки, картинки и прочее, а курсоры - нет.
Если кто может мне помочь - буду благодарен.
Заранее спасибо. 

Автор: MuForum 5.4.2009, 14:35
#1, th1nker - Учимся пользоваться поиском... http://forum.vingrad.ru/index.php?showtopic=226476;

# Вот тебе спец класс для получения само изображения:
Код

using System; // string;
using System.IO; // Stream;
using System.Reflection; // Assembly;
using System.Windows.Forms; // Cursor;
// ----------------------------------------------------------------------
namespace MST
{
    public static class TCursor
    {
        public static Cursor GetCursor(string CursorName)
        {
            Cursor cursor = null;
            // ----
            try
            {
                Assembly asm = Assembly.GetExecutingAssembly();
                string asmName = asm.GetName().Name + ".Resources." + CursorName;
                // ----
                using (Stream resStream = asm.GetManifestResourceStream(asmName))
                {
                        if(resStream != null) cursor = new Cursor(resStream);
                }
            }
            catch (Exception) { cursor = null; }
            // ----
            return cursor;
        }
    }
}



# Получаем изображение:
Код

...
PictureBox.Cursor = TCursor.GetCursor("PanToolCursor.cur");
...

Автор: th1nker 5.4.2009, 16:44
Странно, я вроде искал по форуму, но этой темы не нашел... Наверно, плохо искал. В следующий раз буду лучше искатьsmile)
to MuForum:
Спасибо огромное, а то я уже намучалсяsmile)

Автор: СерегаГоляков 7.6.2011, 07:27
Цитата(MuForum @ 5.4.2009,  14:35)
#1, th1nker - Учимся пользоваться поиском... http://forum.vingrad.ru/index.php?showtopic=226476;

# Вот тебе спец класс для получения само изображения:
Код

using System; // string;
using System.IO; // Stream;
using System.Reflection; // Assembly;
using System.Windows.Forms; // Cursor;
// ----------------------------------------------------------------------
namespace MST
{
    public static class TCursor
    {
        public static Cursor GetCursor(string CursorName)
        {
            Cursor cursor = null;
            // ----
            try
            {
                Assembly asm = Assembly.GetExecutingAssembly();
                string asmName = asm.GetName().Name + ".Resources." + CursorName;
                // ----
                using (Stream resStream = asm.GetManifestResourceStream(asmName))
                {
                        if(resStream != null) cursor = new Cursor(resStream);
                }
            }
            catch (Exception) { cursor = null; }
            // ----
            return cursor;
        }
    }
}



# Получаем изображение:
Код

...
PictureBox.Cursor = TCursor.GetCursor("PanToolCursor.cur");
...

Привет, а какие ограничения на сам курсор? имя там, цвет?
а то у меня не пашет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)