0

私はこれに何年も費やしてきましたが、ほとんどそれを手に入れました。しかし、私が苦しんでいる最後の問題が 1 つあります。カスタム カーソルをアプリケーションに埋め込むことができません...

現在、次の方法を使用して、カーソルをソリューション エクスプローラーにあるカスタム カーソルに変更しています。それは「MyCursor.cur」であり、埋め込みリソースであり、[出力ディレクトリにコピー] を [新しい場合はコピー] に設定しました。これは、カーソルを設定するために使用しているコードです。

public static Cursor ActuallyLoadCursor(String path)
{
    return new Cursor(LoadCursorFromFile(path));
}
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern IntPtr LoadCursorFromFile(string fileName);

そして私のフォームのコンストラクターで:

Cursor = ActuallyLoadCursor("MyCursor.cur");

これは、カーソルをロードしてアプリケーションで使用するために機能した唯一のことです。ただし、これにより、カーソルがプログラムと同じフォルダーにコピーされます。何時間もオンラインで検索しましたが、うまくいきませんでした。コピーせずに、何千行もの不要なコードなしでこれを行う方法はありますか?

私が試した他の解決策は次のとおりです。

using (MemoryStream ms = new MemoryStream(Properties.Resources.MyCursor))
{
    Cursor = new Cursor(ms);
}

Cursor = new Cursor(Assembly.GetExecutingAssembly().GetManifestResourceStream("My_Namespace.MyCursor.cur"));

これらの結果は次のとおりです。

画像形式が無効です。画像ファイルが壊れている可能性があります。パラメータ名:ストリーム

4

2 に答える 2