none
报错“未处理NullReferenceException”, RRS feed

  • 问题

  • 在运行到这行代码时,报“未处理NullReferenceException”,未将对象引用设置到对象实例

    this.Cursor = new Cursor(GetType(), "Cross.Cur");

    cross.cur已导入资中

    我找了下原因,好像是GetType()返回了null值。

    可是要怎样做才能将GetType()不返回null呢?
    这是怎么回事呀,要怎样解决?

    万分感谢!

    2011年6月27日 4:25

答案

  • [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
    private static extern IntPtr LoadCursorFromFile(string path);
    private void Form1_Load(object sender, EventArgs e) 
    {
     this.Cursor = new Cursor(LoadCursorFromFile(@"c:\windows\cursors\Cross.cur"));
    }
    <br/>
    


    试试这个代码,或许可以用。

    资源中的文件通常都已经转换成字节流了(出了图片,字符等)。还是把文件独立出来好了

     




    2011年6月27日 14:53

全部回复

  • 为什么不直接访问呢

    this.Cursor = 项目顶级命名空间.Properties.Resources.Cross;


    2011 c# mvp China. *George读起来像不像“饺子”?我爱吃饺子,我叫George。
    2011年6月27日 5:30
    版主
  • 按饺子的方法:

    项目名称为cur

     this.Cursor = cur.Properties.Resources.Cross;

    报这个错:

    namespace cur.Preperties

    错误:

      无法将类型"byte[]”隐式转换为“System.Windows.Forms.Cursor”

     

    这是为何?

    2011年6月27日 10:16
  • [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
    private static extern IntPtr LoadCursorFromFile(string path);
    private void Form1_Load(object sender, EventArgs e) 
    {
     this.Cursor = new Cursor(LoadCursorFromFile(@"c:\windows\cursors\Cross.cur"));
    }
    <br/>
    


    试试这个代码,或许可以用。

    资源中的文件通常都已经转换成字节流了(出了图片,字符等)。还是把文件独立出来好了

     




    2011年6月27日 14:53