Как я могу изменить курсор для окна в C #? - PullRequest
1 голос
/ 16 июня 2011

Когда я пытаюсь изменить курсор на пользовательский, для отдельного окна, с помощью функции SetCursor () (с помощью user32.dll), он меняет его, но когда мышь начинает двигаться, курсор меняется на значение по умолчанию.Итак, возник вопрос, как я могу изменить курсор для отдельного окна с помощью специального курсора?

Ответы [ 5 ]

2 голосов
/ 16 июня 2011

Я хотел бы обернуть это в try / finally:

try
{
    this.Cursor = Cursors.Wait;
}
finally
{
    this.Cursor = Cursors.Default;
}

Это гарантирует, что вы действительно вернете курсор назад - даже если произойдет ошибка. То, что я также делал в прошлом (для сложных модальных диалоговых ситуаций), имело стек курсоров и помещало текущий курсор в стек перед изменением курсора, снова выталкивая его в предложении finally.

1 голос
/ 30 июля 2013
    public Form1()
    {
        this.ClientSize = new System.Drawing.Size(292, 266);
        this.Text = "Cursor Example";

        // The following generates a cursor from an embedded resource. 

        // To add a custom cursor, create a bitmap 
        //        1. Add a new cursor file to your project:  
        //                Project->Add New Item->General->Cursor File 

        // --- To make the custom cursor an embedded resource  --- 

        // In Visual Studio: 
        //        1. Select the cursor file in the Solution Explorer 
        //        2. Choose View->Properties. 
        //        3. In the properties window switch "Build Action" to "Embedded Resources" 

        // On the command line: 
        //        Add the following flag: 
        //            /res:CursorFileName.cur,Namespace.CursorFileName.cur 
        //         
        //        Where "Namespace" is the namespace in which you want to use the cursor
        //        and   "CursorFileName.cur" is the cursor filename.

        // The following line uses the namespace from the passed-in type 
        // and looks for CustomCursor.MyCursor.Cur in the assemblies manifest. 
    // NOTE: The cursor name is acase sensitive. 
        this.Cursor = new Cursor(GetType(), "MyCursor.cur");  

    }

http://msdn.microsoft.com/en-us/library/system.windows.forms.cursor.aspx

1 голос
/ 16 июня 2011

Нет необходимости использовать собственные функции Windows.

Посмотрите на класс Cursor и открытое свойство Cursor элементов управления, который вы можете установить.

control.Cursor = Cursors.Hand;
1 голос
/ 16 июня 2011

Вы можете изменить его, используя класс курсора программно, например,

     this.Cursor = Cursors.WaitCursor;

Чтобы вернуть его в нормальное состояние,

     this.Cursor = Cursors.Default; 
0 голосов
/ 16 июня 2011

как насчет использования свойства Cursor формы?

this.Cursor = System.Windows.Forms.Cursors.No;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...