ドラッグドロップって面倒臭いな。糞サンプル書いてみた

public Form1()
{
  InitializeComponent();
  listBox1.Items.AddRange(GetWebColors().Cast<object>().ToArray());
  pictureBox1.AllowDrop = true;
}

private Color? mDataToDrop;

static IEnumerable<Color> GetWebColors()
{
  foreach (PropertyInfo info in typeof(Color).GetProperties(BindingFlags.Public | BindingFlags.Static))
    yield return (Color)info.GetValue(null, null);
}

private void listBox1_MouseDown(object sender, MouseEventArgs e)
{
  if (e.Button != MouseButtons.Left) return;
  var index = listBox1.IndexFromPoint(e.Location);
  if (index < 0) return;
  mDataToDrop = (Color)listBox1.Items[index];
}