Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Ответ
 
Опции темы
Старый 11.02.2012, 00:40   #1
Заблокирован
 Старший сержант
Аватар для Gamer1912
 
Gamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небе
Регистрация: 31.01.2011
Сообщений: 182
Популярность: 887
Золото Zhyk.Ru: 100
Сказал(а) спасибо: 136
Поблагодарили 494 раз(а) в 220 сообщениях
Отправить сообщение для Gamer1912 с помощью Skype™
 
По умолчанию Form Skins

Всем привет!
Решил поэкспериментировать со скинами для формы. Может для кого-то покажется бредом, но я считаю такой способ вполне приемлемым.

Для проекта использовал 6 изображений, 3 из них разрешением 200х120(по размеру моей формы), а 3 других меньше, нужны для фона кнопок.

Начнем...

1. Создаем проект, у меня он называется "Form Skins"
2. Жмем на панели инструментов Проект => Свойства: "Название формы"

[Ссылки могут видеть только зарегистрированные пользователи. ]

3. Жмем Ресурсы => Добавить существующий файл. Добавляем заготовленные картинки


[Ссылки могут видеть только зарегистрированные пользователи. ]

Переходим к форме.
1. Добавляем на форму 2 button, 1 comboBox, 1 label. Первая кнопка в дальнейшем будет сворачивать нашу форму, поэтому назовем её "Свернуть", вторая кнопка закрывать программу, назовем её "Закрыть", в label я написал скин, поставил рядом с comboBox.
2. На button и на label ForeColor(цвет шрифта) меняем на White(белый)


[Ссылки могут видеть только зарегистрированные пользователи. ]

3. В свойствах comboBox ставим DropDownStyle = DropDownList

[Ссылки могут видеть только зарегистрированные пользователи. ]

Переходим к коду программы.
1. Указываем какие строки будет содержать comboBox, а также чему он будет равен пр загрузке программы, так как стиле DropDownList, указать текст по-умолчанию нельзя.

Код:
public Form1()
        {
            InitializeComponent();
            comboBox1.Items.AddRange(new object[] { "Skin 1", "Skin 2", "Skin 3" });
            comboBox1.Text = "Skin 1";
        }
2. Скины у нас будут изменяться по выбору строки в comboBox, щелкаем два раза по comboBox на форме и вставляем вот этот код
Код:
if (comboBox1.Text == "Skin 1")
            {
                BackgroundImage = Form_Skins.Properties.Resources.скин1;
                button1.BackgroundImage = button2.BackgroundImage = Form_Skins.Properties.Resources.кнопка1;
            }
            if (comboBox1.Text == "Skin 2")
            {
                BackgroundImage = Form_Skins.Properties.Resources.скин2;
                button1.BackgroundImage = button2.BackgroundImage = Form_Skins.Properties.Resources.кнопка2;
            }
            if (comboBox1.Text == "Skin 3")
            {
                BackgroundImage = Form_Skins.Properties.Resources.скин3;
                button1.BackgroundImage = button2.BackgroundImage = Form_Skins.Properties.Resources.кнопка3;
            }
Думаю здесь и так все понятно, поэтому без комментариев.
3. Добавим на наши кнопки коды, чтобы они выполняли функции, соответствующие их названию.

Первая кнопка "Свернуть"
Код:
WindowState = FormWindowState.Minimized;
Вторая кнопка "Закрыть"
Код:
Application.Exit();
Вот что получилось у меня

[Ссылки могут видеть только зарегистрированные пользователи. ]

Ну вот в принципе и все, готовый проект смотрите во вложениях.

С помощью кода Hermein'а, слепил вроде как оптимальный код. Гайд изменять уже не буду.
А вот код(также есть в коменте ниже)

Код:
namespace Form_Skins
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            comboBox1.Items.AddRange(new object[] { "Skin 1", "Skin 2", "Skin 3" });
            comboBox1.SelectedIndex = 0;
        }
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (comboBox1.SelectedIndex)
            {
                case 0:
                    skin("скин1", "кнопка1");
                    break;
                case 1:
                    skin("скин2", "кнопка2");
                    break;
                case 2:
                    skin("скин3", "кнопка3");
                    break;
            }
        }
        private void skin(string фон, string кнопка)
        {
            BackgroundImage = (Image)Properties.Resources.ResourceManager.GetObject(фон);
            button1.BackgroundImage = button2.BackgroundImage = (Image)Properties.Resources.ResourceManager.GetObject(кнопка);
        }
        private void button1_Click(object sender, EventArgs e)
        {
            WindowState = FormWindowState.Minimized;
        }
        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
    }
}
Вложения
Тип файла: rar Form Skins.rar (201.1 Кб, 42 просмотров)

Последний раз редактировалось Gamer1912; 11.02.2012 в 10:54.
  Ответить с цитированием
Пользователь сказал cпасибо:
T7e6Ay22 (11.02.2012)
Старый 11.02.2012, 01:05   #2
Читер-спонсор
 Рыцарь-защитник
Аватар для Hermein
 
Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(
Регистрация: 14.01.2011
Сообщений: 633
Популярность: 28087
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 90
Поблагодарили 717 раз(а) в 374 сообщениях
Отправить сообщение для Hermein с помощью ICQ Отправить сообщение для Hermein с помощью Skype™
 
По умолчанию Re: Form Skins

Цитата:
Сообщение от Gamer1912Посмотреть сообщение
указать текст по-умолчанию нельзя

ComboBox1.SelectionIndex=0;

Цитата:
Сообщение от Gamer1912Посмотреть сообщение
2. Скины у нас будут изменять по выбору строки в comboBox, для этого щелкаем два раза по comboBox на форме и вставляем вот этот код



Код:
switch(ComboBox1.SelectionIndex)
{
case 0:      this.BackgroundImage = Form_Skins.Properties.Resources.скин1;
                button1.BackgroundImage = button2.BackgroundImage = Form_Skins.Properties.Resources.кнопка1;
break;
case 1: this.BackgroundImage = Form_Skins.Properties.Resources.скин2;
                button1.BackgroundImage = button2.BackgroundImage = Form_Skins.Properties.Resources.кнопка2;
break;
case 2: this.BackgroundImage = Form_Skins.Properties.Resources.скин3;
                button1.BackgroundImage = button2.BackgroundImage = Form_Skins.Properties.Resources.кнопка3;
break;
}
  Ответить с цитированием
Пользователь сказал cпасибо:
Gamer1912 (11.02.2012)
Старый 11.02.2012, 01:11   #3
Заблокирован
 Старший сержант
Аватар для Gamer1912
 
Gamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небе
Регистрация: 31.01.2011
Сообщений: 182
Популярность: 887
Золото Zhyk.Ru: 100
Сказал(а) спасибо: 136
Поблагодарили 494 раз(а) в 220 сообщениях
Отправить сообщение для Gamer1912 с помощью Skype™
 
По умолчанию Re: Form Skins

Hermein, Можно более раскрыто? Толи лыжи не едут...

Добавлено через 12 минут
Цитата:
Сообщение от HermeinПосмотреть сообщение
ComboBox1.SelectionIndex=0;

ComboBox1.SelectedIndex=0;
Код:
namespace Form_Skins
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            comboBox1.Items.AddRange(new object[] { "Skin 1", "Skin 2", "Skin 3" });
            comboBox1.SelectedIndex = 0;
        }
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (comboBox1.SelectedIndex)
            {
                case 0:
                    BackgroundImage = Form_Skins.Properties.Resources.скин1;
                    button1.BackgroundImage = button2.BackgroundImage = Form_Skins.Properties.Resources.кнопка1;
                    break;
                case 1:
                    BackgroundImage = Form_Skins.Properties.Resources.скин2;
                    button1.BackgroundImage = button2.BackgroundImage = Form_Skins.Properties.Resources.кнопка2;
                    break;
                case 2: this.BackgroundImage = Form_Skins.Properties.Resources.скин3;
                    button1.BackgroundImage = button2.BackgroundImage = Form_Skins.Properties.Resources.кнопка3;
                    break;
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            WindowState = FormWindowState.Minimized;
        }
        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
    }
}
Вложения
Тип файла: rar Form Skins.rar (204.4 Кб, 4 просмотров)

Последний раз редактировалось Gamer1912; 11.02.2012 в 01:31. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 11.02.2012, 01:46   #4
Заблокирован
 Старший сержант
Аватар для Gamer1912
 
Gamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небе
Регистрация: 31.01.2011
Сообщений: 182
Популярность: 887
Золото Zhyk.Ru: 100
Сказал(а) спасибо: 136
Поблагодарили 494 раз(а) в 220 сообщениях
Отправить сообщение для Gamer1912 с помощью Skype™
 
По умолчанию Re: Form Skins

Цитата:
Сообщение от HermeinПосмотреть сообщение
switch(ComboBox1.SelectionIndex)
{
case 0: this.BackgroundImage = Form_Skins.Properties.Resources.скин1;
button1.BackgroundImage = button2.BackgroundImage = Form_Skins.Properties.Resources.кнопка1;
break;
case 1: this.BackgroundImage = Form_Skins.Properties.Resources.скин2;
button1.BackgroundImage = button2.BackgroundImage = Form_Skins.Properties.Resources.кнопка2;
break;
case 2: this.BackgroundImage = Form_Skins.Properties.Resources.скин3;
button1.BackgroundImage = button2.BackgroundImage = Form_Skins.Properties.Resources.кнопка3;
break;
}

За этот код огромное спасибо!

Вот еще вариант

Код:
namespace Form_Skins
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            comboBox1.Items.AddRange(new object[] { "Skin 1", "Skin 2", "Skin 3" });
            comboBox1.SelectedIndex = 0;
        }
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (comboBox1.SelectedIndex)
            {
                case 0:
                    skin(Properties.Resources.скин1, Properties.Resources.кнопка1);
                    break;
                case 1:
                    skin(Properties.Resources.скин2, Properties.Resources.кнопка2);
                    break;
                case 2:
                    skin(Properties.Resources.скин3, Properties.Resources.кнопка3);
                    break;
            }
        }
        private void skin(Image фон, Image кнопка)
        {
            this.BackgroundImage = фон;
            button1.BackgroundImage = button2.BackgroundImage = кнопка;
        }
        private void button1_Click(object sender, EventArgs e)
        {
            WindowState = FormWindowState.Minimized;
        }
        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
    }
}
Добавлено через 16 минут
Вот наверно самый оптимальный вариант, когда скинов достаточно много.
Код:
namespace Form_Skins
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            comboBox1.Items.AddRange(new object[] { "Skin 1", "Skin 2", "Skin 3" });
            comboBox1.SelectedIndex = 0;
        }
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (comboBox1.SelectedIndex)
            {
                case 0:
                    skin("скин1", "кнопка1");
                    break;
                case 1:
                    skin("скин2", "кнопка2");
                    break;
                case 2:
                    skin("скин3", "кнопка3");
                    break;
            }
        }
        private void skin(string фон, string кнопка)
        {
            BackgroundImage = (Image)Properties.Resources.ResourceManager.GetObject(фон);
            button1.BackgroundImage = button2.BackgroundImage = (Image)Properties.Resources.ResourceManager.GetObject(кнопка);
        }
        private void button1_Click(object sender, EventArgs e)
        {
            WindowState = FormWindowState.Minimized;
        }
        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
    }
}

Последний раз редактировалось Gamer1912; 11.02.2012 в 02:03. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 11.02.2012, 10:12   #5
 Разведчик
Аватар для T7e6Ay22
 
T7e6Ay22 душа компанииT7e6Ay22 душа компанииT7e6Ay22 душа компанииT7e6Ay22 душа компанииT7e6Ay22 душа компанииT7e6Ay22 душа компанииT7e6Ay22 душа компанииT7e6Ay22 душа компании
Регистрация: 03.12.2010
Сообщений: 16
Популярность: 917
Сказал(а) спасибо: 22
Поблагодарили 75 раз(а) в 34 сообщениях
Отправить сообщение для T7e6Ay22 с помощью ICQ
 
По умолчанию Re: Form Skins

Спасибо, мануал в закладки, пригодится в будущем.
________________
Работаю с графикой, обращайтесь.
Пишем Update'R сами!
  Ответить с цитированием
Пользователь сказал cпасибо:
Gamer1912 (11.02.2012)
Старый 11.02.2012, 12:22   #6
Заблокирован
 Старший сержант
Аватар для Gamer1912
 
Gamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небеGamer1912 лучик света в грозовом небе
Регистрация: 31.01.2011
Сообщений: 182
Популярность: 887
Золото Zhyk.Ru: 100
Сказал(а) спасибо: 136
Поблагодарили 494 раз(а) в 220 сообщениях
Отправить сообщение для Gamer1912 с помощью Skype™
 
По умолчанию Re: Form Skins

Вот еще дополнение, если кнопок много, то в самый раз
Код:
using System;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Form_Skins
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            comboBox1.Items.AddRange(new object[] { "Skin 1", "Skin 2", "Skin 3" });
            comboBox1.SelectedIndex = 0;
        }
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (comboBox1.SelectedIndex)
            {
                case 0:
                    skin("скин1", "кнопка1", "Cyan");
                    break;
                case 1:
                    skin("скин2", "кнопка2", "Black");
                    break;
                case 2:
                    skin("скин3", "кнопка3", "White");
                    break;
            }
        }
        private void skin(string фон_формы, string фон_кнопки, string цвет_текста)
        {
            BackgroundImage = (Image)Properties.Resources.ResourceManager.GetObject(фон_формы);
            foreach (var ctrl in Controls)
            {
                if (ctrl is Button)
                    ((Button)ctrl).BackgroundImage = (Image)Properties.Resources.ResourceManager.GetObject(фон_кнопки);
                if (ctrl is Button)
                    ((Button)ctrl).ForeColor = Color.FromName(цвет_текста);
                if (ctrl is Button)
                    ((Button)ctrl).Font = new Font(((Button)ctrl).Font, FontStyle.Bold);
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            WindowState = FormWindowState.Minimized;
        }
        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
    }
}
См. вложение
Вложения
Тип файла: rar Form Skins.rar (212.7 Кб, 3 просмотров)
  Ответить с цитированием
Пользователь сказал cпасибо:
The Unique (17.02.2012)
Старый 16.02.2012, 17:54   #7
Заблокирован
 Сержант
Аватар для MiKS007
 
MiKS007 определенно авторитетная личностьMiKS007 определенно авторитетная личностьMiKS007 определенно авторитетная личностьMiKS007 определенно авторитетная личностьMiKS007 определенно авторитетная личностьMiKS007 определенно авторитетная личностьMiKS007 определенно авторитетная личностьMiKS007 определенно авторитетная личностьMiKS007 определенно авторитетная личность
Регистрация: 11.12.2010
Сообщений: 130
Популярность: 1146
Сказал(а) спасибо: 42
Поблагодарили 191 раз(а) в 51 сообщениях
Отправить сообщение для MiKS007 с помощью ICQ Отправить сообщение для MiKS007 с помощью Telegram Отправить сообщение для MiKS007 с помощью Yahoo Отправить сообщение для MiKS007 с помощью Skype™
 
По умолчанию Re: Form Skins

А Ha C# нельзя изменить стиль окна программы? Ну чтоб как на семерке было прозрачно, хотя на компе вообще стоит ХР, со стандартной темой! Это я к примеру!
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Garena Skins - GoDz ParniSha) Garena 11 21.11.2010 13:08

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 02:57.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net