private void toolStripButtonGameSetting_Click(object sender, EventArgs e) { FormGameSetting fgs = new FormGameSetting(this); fgs.TopMost = this.TopMost; // Цвета клонируем, иначе простое присваивание просто присвоит fgs.ColorBalls адрес ColorBalls // и изменение будут происходить одновременно в обоих массивах. fgs.ColorGraphItems = (Color[])GameSet.GraphItems.Clone(); fgs.CurrentGraphItem = GameSet.CurrentGraphItem; if (fgs.ShowDialog() == DialogResult.OK) { // Запомним данные игры для сохранения в файл. GameSet.CurrentGraphItem = fgs.CurrentGraphItem; // Изменим тип графэлемента во всех объектах класса GraphItem. GraphItem.CurrentTypeGraphItem = GameSet.CurrentGraphItem; // Процедура изменения цвета графэлементов. // Отметим графэлементы одного цвета свойством Tag, // чтобы затем правильно распределить новые цвета. for (int i = 0; i < GItems.Length; i++) { if (GItems[i].Color == GameSet.GraphItems[0]) { GItems[i].Tag = 0; } if (GItems[i].Color == GameSet.GraphItems[1]) { GItems[i].Tag = 1; } if (GItems[i].Color == GameSet.GraphItems[2]) { GItems[i].Tag = 2; } } // На основе свойства Tag распределим новые цвета. for (int i = 0; i < GItems.Length; i++) { if (GItems[i].Tag != -1) { GItems[i].Color = fgs.ColorGraphItems[GItems[i].Tag]; this.Invalidate(GItems[i].CellCoordinate); } } // Запомним данные игры для сохранения в файл. GameSet.GraphItems = fgs.ColorGraphItems; } }
private void toolStripButtonGameSetting_Click(object sender, EventArgs e) { FormGameSetting fgs = new FormGameSetting(this); fgs.TopMost = this.TopMost; // Цвета клонируем, иначе простое присваивание просто присвоит fgs.ColorBalls адрес ColorBalls // и изменение будут происходить одновременно в обоих массивах. fgs.ColorGraphItems = (Color[])GameSet.GraphItems.Clone(); fgs.CurrentGraphItem = GameSet.CurrentGraphItem; if (fgs.ShowDialog() == DialogResult.OK) { // Запомним данные игры для сохранения в файл. GameSet.CurrentGraphItem = fgs.CurrentGraphItem; // Изменим тип графэлемента во всех объектах класса GraphItem. // GraphItem.CurrentTypeGraphItem = GameSet.CurrentGraphItem; } }