解决 将自定义福彩12选5走势图与拖放闪烁配合使用

tim8w

知名会员
已加入
2020年9月8日
留言内容
64
编程经验
10+
你好
我试图将我的PictureBox图像用作拖放的自定义福彩12选5走势图。从文档中,它建议我在GiveFeedback例程中设置福彩12选5走势图。如果这样做,则图像会闪烁。是否有其他或更优选的方法来执行此操作?

C#:
private void pbLessThanLg_MouseDown(object sender, MouseEventArgs e)
{
    PictureBox pbSelected = (PictureBox)sender;
    pbSelected.DoDragDrop(pbSelected.Image, DragDropEffects.Copy);
}

private void pbLessThanLg_GiveFeedback(object sender, GiveFeedbackEventArgs e)
{
    PictureBox pbSelected = (PictureBox)sender;
    Cursor.Current = BitmapToCursor((Bitmap)pbSelected.Image, 64, 64);
}
 
Solution
通常,仅当反馈事件args指示您正在将状态从复制更改为移动,或从移动更改为无放置等时,才应更改福彩12选5走势图。否则,如果当前的拖放状态与上一次拖动相同掉落状态,不要管它。

Also, is your BitmapToCursor() creating a brand new cursor each time? You should try to cache cursors 和 only create new ones when needed.

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,497
地点
弗吉尼亚州切萨皮克
编程经验
10+
通常,仅当反馈事件args指示您正在将状态从复制更改为移动,或从移动更改为无放置等时,才应更改福彩12选5走势图。否则,如果当前的拖放状态与上一次拖动相同掉落状态,不要管它。

Also, is your BitmapToCursor() creating a brand new cursor each time? You should try to cache cursors 和 only create new ones when needed.
 

tim8w

知名会员
已加入
2020年9月8日
留言内容
64
编程经验
10+
通常,仅当反馈事件args指示您正在将状态从复制更改为移动,或从移动更改为无放置等时,才应更改福彩12选5走势图。否则,如果当前的拖放状态与上一次拖动相同掉落状态,不要管它。

Also, is your BitmapToCursor() creating a brand new cursor each time? You should try to cache cursors 和 only create new ones when needed.

天空,
谢谢。我将GiveFeedback更改为:
C#:
private void pbLessThanLg_GiveFeedback(object sender, GiveFeedbackEventArgs e)
{
    if (e.Effect == DragDropEffects.Copy)
    {
        e.UseDefaultCursors = false;
        Cursor.Current = pbLessThanLgCursor;
    }
    else
        e.UseDefaultCursors = false;
}

而且效果很好!
 
最佳 底部