2
私はこの問題を抱えていました。ユーザーが何らかのキーを押したときにカーソルを変更する必要のあるカスタムコントロール(C#、WinForms、Framework 4.0)を作成しました。コントロールから抜ける前のカーソルに復元したいのですが、うまくいきません。現在のカーソルは現在のカーソルのままです。どうしましたか?ボタンが押されたときカスタムコントロール出口でカーソルが変更されない
protected override void OnMouseEnter(EventArgs e)
{
oldCursor = Cursor;
base.OnMouseEnter(e);
}
protected override void OnMouseLeave(EventArgs e)
{
Cursor = oldCursor;
base.OnMouseLeave(e);
}
私が行います
this.Cursor = NewCursor.CreateCursor(
Properties.Resources.cur_ZoomIn, 14, 9, Color.White);
どこ
public static Cursor CreateCursor(
Bitmap bmp_parm, int xHotSpot, int yHotSpot, Color? transparent)
{
Image img = bmp_parm;
Bitmap bmp = new Bitmap(img, new Size(img.Width, img.Height));
if (transparent.HasValue) bmp.MakeTransparent(transparent.Value);
if (cursor != IntPtr.Zero)
DestroyIcon(cursor);
IntPtr ptr = bmp.GetHicon();
IconInfo tmp = new IconInfo();
GetIconInfo(ptr, ref tmp);
tmp.xHotspot = xHotSpot;
tmp.yHotspot = yHotSpot;
tmp.fIcon = false;
cursor = CreateIconIndirect(ref tmp);
if (tmp.hbmColor != IntPtr.Zero) DeleteObject(tmp.hbmColor);
if (tmp.hbmMask != IntPtr.Zero) DeleteObject(tmp.hbmMask);
if (ptr != IntPtr.Zero) DestroyIcon(ptr);
return new Cursor(cursor);
}
私は(たとえば
hereのために、他の場所)の周りGoogleで検索し、私のコードは、右のようだ
...
はい@VMAtm、あなたは正しいです(私はすでにこれについて考えています)、あなたの答えに感謝!!問題は、カーソルの保存と復元に関する経験がないことです。 – Marco
@Marco問題はありません。良い質問品質と幸運をありがとう:) – VMAtm
@マルコあなたはまだそれに問題がありますか? – VMAtm