私はこれに何年も費やしてきましたが、ほとんどそれを手に入れました。しかし、私が苦しんでいる最後の問題が 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"));
これらの結果は次のとおりです。
画像形式が無効です。画像ファイルが壊れている可能性があります。パラメータ名:ストリーム