コード例 #1
0
ファイル: FormMain.cs プロジェクト: ghostlya/lines
        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;
            }
        }
コード例 #2
0
ファイル: FormMain.cs プロジェクト: GSTU/oop-examples
        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;
            }
        }