我想拖动label2并将其放入pictureBox1,但它不起作用,我不知道是什么问题
private void pictureBox1_DragDrop(object sender, DragEventArgs e)
{
pictureBox1.AllowDrop = true;
if (CurrentDrag.Equals("clock1"))
{
Label pnlDroggedTheme = (Label)sender;
pnlDroggedTheme.Height = pictureBox1.Height;
pnlDroggedTheme.Width = pictureBox1.Width;
label2.Visible = false;
correct++;
label1.Text = correct.ToString();
MessageBox.Show(" cerrect answer");
}
else
wronge++;
label1.Text = wronge.ToString();
MessageBox.Show("wronge answer");
}
这是pictureBox1的DragEnter方法
private void pictureBox1_DragEnter(object sender, DragEventArgs e)
{
如果被删除元素的数据来自类型字符串(标签为
),它应该复制数据 if (e.Data.GetDataPresent(typeof(System.String)))
{
e.Effect = DragDropEffects.Copy;
}
else
{
e.Effect = DragDropEffects.None;
}
}
标签拖动效果很好,但我不能将它放在图片框中
private void label2_MouseDown(object sender, MouseEventArgs e)
{
CurrentDrag = "clock1";
Label labelV = (Label)sender;
labelV .DoDragDrop(labelV .BackColor, DragDropEffects.Copy);
}
答案 0 :(得分:2)
如果数据类型为System.String
,您正在进行拖放事件检查,如果不是,则执行无操作,但您正在对System.Color
执行拖放操作。我认为你想做什么
Label labelV = (Label)sender;
labelV .DoDragDrop(labelV.Text, DragDropEffects.Copy);
您应该这样做或修改拖放事件以接受System.Color
。
此外,您应将pictureBox1.AllowDrop = true;
移至构造函数或Form_Load
,或者在设计时将属性设置为true。