private void DiscoSoltar_DragDrop(object sender, DragEventArgs e) { GroupBox groupBox = (GroupBox)sender; Button button = e.Data.GetData("disco") as Button; if (groupBox != button.Parent) { Button button2 = FormaJuego.ObtenerDiscoSuperiorTorre(groupBox); int top = groupBox.Height - alturaDisco; if (button2 != null) { if ((int)button2.Tag > (int)button.Tag) { return; } top = button2.Top - alturaDisco; } button.Top = top; button.Parent.Controls.Remove(button); groupBox.Controls.Add(button); labelMovidas.Text = Convert.ToString(movidas++); if (groupBox.Name.ToString() == "torre3" && groupBox.Controls.Count == Convert.ToUInt16(cambiarDiscos.Text)) { MessageBox.Show("Terminaste en: " + labelMovidas.Text + " Movimientos\n\nTu torre fue de: " + cambiarDiscos.Text + " Discos"); StreamWriter resultado = new StreamWriter(ruta, true); resultado.WriteLine(labelMovidas.Text + "|" + cambiarDiscos.Text); resultado.Close(); agregarAnillos(Convert.ToUInt16(cambiarDiscos.Text)); labelMovidas.Text = "0"; movidas = 1; } } }
private void Disco_MouseDown(object sender, MouseEventArgs e) { Button button = (Button)sender; if (FormaJuego.DiscoSuperiorTorre(button.Parent, button)) { DataObject data = new DataObject("disco", button); ((Button)sender).DoDragDrop(data, DragDropEffects.Move); } }
private static bool DiscoSuperiorTorre(Control group, Control btnDisk) { Button button = FormaJuego.ObtenerDiscoSuperiorTorre(group); return(button == null || (int)button.Tag <= (int)btnDisk.Tag); }