locked
FAQs: 如何在VB.NET中设定windows窗体的光标? RRS feed

  • 问题

  • 为了帮助大家更好地学习 Visual Basic技术,微软论坛技术支持团队编辑了一些列的 "Visual Basic 常见问题及解答" 精华帖。

    本帖的主题是:如何在VB.NET中设定windows窗体的光标?

    如果您觉得这个帖子对您的学习、工作有所帮助,请再把这个帖子分享给你的同学、同事和朋友。

    如果您想阅读更多的 "Visual Basic 常见问题及解答",请打开索引页面:
    http://social.msdn.microsoft.com/Forums/zh-CN/vbasiczhchs/thread/c9ab4b8e-99dc-49a2-bcea-30f3ecc3c3b7


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    MSDN 论坛好帮手 立刻免费下载  MSDN 论坛好帮手
    2011年3月2日 12:23

答案

  • .NET应用程序中,我们可以给Cursor对象设定Form.Cursor属性来改变窗体的光标。Cursor对象可以从四种资源中创建:特定的窗口句柄,特定的数据流,特定的文件名,或者特定的ResourceType CursorName。以下的四个构造函数对应上面四种对象创建资源:

    1. IntPtr

    http://msdn.microsoft.com/zh-cn/library/a5bbc3fe.aspx

    2. Stream

    http://msdn.microsoft.com/zh-cn/library/7x58z7ya.aspx

    3. String

    http://msdn.microsoft.com/zh-cn/library/kkw8k45d.aspx

    4. Typ, String

    http://msdn.microsoft.com/zh-cn/library/kkw8k45d.aspx

     

    一些系统光标不可以直接通过完整路径来加载,因为它们是以一种托管代码无法感知的本机格式存在的。这样的话我们应该使用PInvoke调用Windows API LoadCursorFromFile 然后选择首选模式来从一个文件句柄创建一个Cursor对象。

     

    VB.NET代码如下:

    ------------------------------------------------------------

        Private Declare Unicode Function LoadCursorFromFile Lib "user32.dll" Alias "LoadCursorFromFileW" (ByVal filename As String) As IntPtr

       

        Dim Iconfile As String = Application.StartupPath & "\kaycur1.ico"

        Dim curfile As String = Application.StartupPath & "\kaycursor.cur"

        Dim Anifile As String = Application.StartupPath & "\RedClockWiseCursor.ani"

        

        Public Sub animatedCur()

            If File.Exists(curfile) = True Then

                Dim hcur As IntPtr

                hcur = LoadCursorFromFile(curfile)

                Me.Cursor = New Cursor(hcur)

            Else

                Me.Cursor = System.Windows.Forms.Cursors.Default

            End If

    End Sub

    ------------------------------------------------------------

     

    相关帖子:
    http://social.msdn.microsoft.com/Forums/en-SG/vbgeneral/thread/40e42c91-0318-416e-bcbc-65668b6241ed

     


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    MSDN 论坛好帮手 立刻免费下载  MSDN 论坛好帮手
    2011年3月2日 12:23