Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать прозрачный фон Label'ов в С# 
:(
    Опции темы
Aderando
Дата 4.3.2010, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 4.3.2010
Где: Украина

Репутация: нет
Всего: нет



Всем привет! Говорю сразу я новичок! Естественно много вопросов!
Вот несколько из них:

1. В Windows Form я решил сменить фон программы. Сменил! После добавил label но столкнулся с проблемой. Фон лейблов плохо смотрится на фоне формы! А я хочу что б у меня на фоне формы были только буквы без фона. Надеюсь понятно изложил вопрос. smile 

2. Следующий вопрос скорее всего по Юникоду! 
Вот у меня есть строчка:
 label1.Text = summ.ToString("C");
она мне дает вывод буквы ".р" на примет...   цена сандвича: 25,34 .р     а мне нужно сделать  цена сандвича: 25,34 .грн !
Подскажите пожалуйста как это сделать! И есть ли где-то перечень этих знаков, на будущие!

3. Вопрос по конструктору. Как мне в конструкторе сделать сетку для того что бы ровно расставлять элементы. Я в задачнику видел скриншоты формы, то там у него по всей пощаде точки. Так как мне тоже это сделать?

Буду очень благодарен если мне дадут четкий ответ без всяких приколов и ссылок типа поищи в гугле или мы уже такое обсуждали!  smile  

PM MAIL ICQ Skype   Вверх
CYBERDREAM
Дата 4.3.2010, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



1. Установи у Label фон идентичный фону родительского контрола. У меня он автоматом выставляется, не знаю почему тебя так вышло.
2. 
Код

NumberFormatInfo d = new NumberFormatInfo()
                                     {
                                         CurrencySymbol = "грн"
                                     };
            label1.Text = k.ToString("C",d);

3. Увы забыл где это устанавливается. Ты в какой студии работаешь? С 2005 версии очень удобно и так выравнивания производить

Добавлено через 6 минут и 34 секунды
3. Tools-Options-Windows Forms Designer-> LayoutMode=SnapToGrid

Добавлено через 6 минут и 56 секунд
и перезапусти студию


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
Aderando
Дата 5.3.2010, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 4.3.2010
Где: Украина

Репутация: нет
Всего: нет



CYBERDREAM огромное спасибо за помощь! 
По поводу лейблов! Я сменил фон формы на рисунок, тоесть фон лейбла не подберу! Поэтому мне нужно сделать именно прозрачный фон а не такой как на форме! Я работаю в Microsoft Visual 2008.

С точками разобрался... спасибо... очень удобная вещь.

А вот с ".грн" не понял, так еще мало в чем розбераюсь! Если не трудно, я кинул код с задачника, простейшая программа, укажи пожалуйста где нужно прописать эту строчку с ".грн" а я попытаюсь понять! Буду очень благодарен!

Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication15
{
    public partial class Form1 : Form
    {
        private double summ;

        public Form1()
        {
            InitializeComponent();

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            checkBox3.Enabled = false;
        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox1.Checked) summ += 54.00;
            else summ -= 54.00;

            label1.Refresh();
        }

        private void checkBox2_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox2.Checked)
            {
                summ += 24.50;
                if (!checkBox3.Enabled) checkBox3.Enabled = true;
            }
            else
            {
                summ -= 24.50;
                if (checkBox3.Checked) checkBox3.Checked = false;
                checkBox3.Enabled = false;
            }
            label1.Refresh();
        }

        private void checkBox3_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox3.Checked) summ += 10.50;
            else summ -= 10.50;
            label1.Refresh();
        }

        private void checkBox4_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox4.Checked) summ += 18.00;
            else summ -= 18.00;
            label1.Refresh();
        }

        private void label1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
        {
            label1.Text = summ.ToString("C");
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (checkBox1.Checked && checkBox2.Checked &&
                checkBox3.Checked && checkBox4.Checked)
            {
                MessageBox.Show("Вам предоставляеться скидка 10%\n" +
                    "Стоимоть заказа: " + (summ * 0.9).ToString("C")+
                    "Кафе");

            }
            else
            {
                if (checkBox1.Checked || checkBox2.Checked ||
                    checkBox3.Checked || checkBox4.Checked)
                    MessageBox.Show("Стоимость заказа: " +
                        summ.ToString("C"), "Кафе");
                else
                    MessageBox.Show("Вы нечего не заказали!" +
                        "кафе");

            }
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        
    }
}



PM MAIL ICQ Skype   Вверх
CYBERDREAM
Дата 5.3.2010, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



подписывать на onpaint не стоит, можно сделать так

Код

#region

using System;
using System.Globalization;
using System.Windows.Forms;

#endregion

namespace del
{
    public partial class example : Form
    {
        private double _summ;

        private readonly NumberFormatInfo _numberFormatInfo = new NumberFormatInfo
                                                                  {
                                                                      CurrencySymbol = ".грн"
                                                                  };

        private Double Summ
        {
            get { return _summ; }
            set
            {
                _summ = value;
                label1.Text = String.Format("{0}грн.", _summ);
            }
        }

        public example()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            checkBox3.Enabled = false;
        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox1.Checked) Summ += 54.00;
            else Summ -= 54.00;
        }

        private void checkBox2_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox2.Checked)
            {
                Summ += 24.50;
                if (!checkBox3.Enabled) checkBox3.Enabled = true;
            }
            else
            {
                Summ -= 24.50;
                if (checkBox3.Checked) checkBox3.Checked = false;
                checkBox3.Enabled = false;
            }
            label1.Refresh();
        }

        private void checkBox3_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox3.Checked) _summ += 10.50;
            else Summ -= 10.50;
            label1.Refresh();
        }

        private void checkBox4_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox4.Checked) Summ += 18.00;
            else Summ -= 18.00;
        }


        private void button1_Click(object sender, EventArgs e)
        {
            if (checkBox1.Checked && checkBox2.Checked &&
                checkBox3.Checked && checkBox4.Checked)
            {
                MessageBox.Show("Вам предоставляеться скидка 10%\n" +
                                "Стоимоть заказа: " + (Summ*0.9).ToString("C", _numberFormatInfo) +
                                "Кафе");
            }
            else
            {
                if (checkBox1.Checked || checkBox2.Checked ||
                    checkBox3.Checked || checkBox4.Checked)
                    MessageBox.Show("Стоимость заказа: " +
                                    Summ.ToString("C", _numberFormatInfo), "Кафе");
                else
                    MessageBox.Show("Вы нечего не заказали!" +
                                    "кафе");
            }
        }

        private void label1_Click(object sender, EventArgs e)
        {
        }
    }
}



--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
Aderando
Дата 5.3.2010, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 4.3.2010
Где: Украина

Репутация: нет
Всего: нет



Спасибо, пока еще не разобрался но сейчас попытаюсь понять smile !
PM MAIL ICQ Skype   Вверх
CYBERDREAM
Дата 5.3.2010, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



По поводу прозрачности вроде стандартными средствами нельзя. Так что можно сделать свой контрол
Код

#region

using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Windows.Forms;

#endregion

namespace randz.CustomControls
{
    /// <summary>
    ///   A custom windows control to display text vertically
    /// </summary>
    [ToolboxBitmap(typeof (VerticalLabel), "VerticalLabel.ico")]
    public class VerticalLabel : Control
    {
        private string _labelText;

        private readonly Container _components = new Container();

        /// <summary>
        ///   VerticalLabel constructor
        /// </summary>
        public VerticalLabel()
        {
            CreateControl();
            InitializeComponent();
            SetStyle(ControlStyles.Opaque, true);
        }

        /// <summary>
        ///   Dispose override method
        /// </summary>
        /// <param name = "disposing">boolean parameter</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                if (_components != null)
                {
                    _components.Dispose();
                }
            }
            base.Dispose(disposing);
        }

        [DebuggerStepThrough]
        private void InitializeComponent()
        {
            Size = new Size(24, 100);
        }

        /// <summary>
        ///   OnPaint override. This is where the text is rendered vertically.
        /// </summary>
        /// <param name = "e">PaintEventArgs</param>
        protected override void OnPaint(PaintEventArgs e)
        {
            e.Graphics.DrawString(_labelText, Font, new SolidBrush(ForeColor), 0, 0);
        }

        protected override CreateParams CreateParams
        {
            get
            {
                CreateParams cp = base.CreateParams;
                cp.ExStyle |= 0x20; // Turn on WS_EX_TRANSPARENT
                return cp;
            }
        }

        /// <summary>
        ///   The text to be displayed in the control
        /// </summary>
        [Category("VerticalLabel"), Description("Text is displayed vertically in container.")]
        public override string Text
        {
            get { return _labelText; }
            set
            {
                _labelText = value;
                Invalidate();
            }
        }
    }
}

Взято с CodeProject


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
Aderando
Дата 5.3.2010, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 4.3.2010
Где: Украина

Репутация: нет
Всего: нет



О-о-о-о-о-о!!!! Это хорошо звучит! Но объясни пожалуйста для чайника как этот код преобразовать  в контрол! Если можно по  smile шагово, очень прошу!
PM MAIL ICQ Skype   Вверх
CYBERDREAM
Дата 5.3.2010, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



Добавь класс в проект (NameSpace поменяй на свой). Собери свой солушин. Затем в тулбоксе увидишь будет создан новый компонент Label7. Ну и как обычный контрол кидай на форму

Добавлено @ 17:22
вот здесь ivashkanet описал) http://forum.vingrad.ru/index.php?showtopi...st&p=998960

Это сообщение отредактировал(а) CYBERDREAM - 5.3.2010, 17:22


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
Aderando
Дата 9.3.2010, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 4.3.2010
Где: Украина

Репутация: нет
Всего: нет



Создал клас, переименовал, написал код...а дальше что? Как его скомпилировать что б использовать??


Это сообщение отредактировал(а) Aderando - 9.3.2010, 19:05
PM MAIL ICQ Skype   Вверх
CYBERDREAM
Дата 9.3.2010, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



там ведь все написано. 
Собери проект. В тулбоксе после этого появится твой контрол, пользуйся


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
Aderando
Дата 9.3.2010, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 4.3.2010
Где: Украина

Репутация: нет
Всего: нет



Там написано собери проект....КАК ЕГО СОБРАТЬ? Мож сказать?

CYBERDREAM, тебе нужно будет:
1) В меню (наверху) выбрать Project --> AddClass.
2) Откроется диалог, дашь етому классу имя SingleCheckedListBox
3) Откроется страница с кодом. Код:Код

    class SingleCheckedListBox
    {
    }


Полностью заменишь на мой (1:1, кроме коментариев)
4) Скомпилируешь проект
5) В дизайнере форм на вкладке Toolbox появится подвкладка "<Твой проект> components" появится новый контрол, его можно ложить на форму

Я не понял 4-й пункт! Как его скомпилировать??


Это сообщение отредактировал(а) Aderando - 9.3.2010, 19:36
PM MAIL ICQ Skype   Вверх
CYBERDREAM
Дата 9.3.2010, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



Build - > build solution


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
Aderando
Дата 9.3.2010, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 4.3.2010
Где: Украина

Репутация: нет
Всего: нет



У меня русская версия

Нашел, нажал..ща попробую...ток оно шото не добавилось в туулбокс!


У тебя есть ася? 


Это сообщение отредактировал(а) Aderando - 9.3.2010, 20:02
PM MAIL ICQ Skype   Вверх
CYBERDREAM
Дата 9.3.2010, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 11
Всего: 28



прости, занят. Потрудись, найдешь


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
Aderando
Дата 9.3.2010, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 4.3.2010
Где: Украина

Репутация: нет
Всего: нет



когда будешь свободен то помоги...и аську дай...на всяк_
PM MAIL ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0637 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.