3 / 3 / 1
Регистрация: 13.12.2011
Сообщений: 89
1

Прозрачный фон в DataGridView

04.12.2012, 15:35. Показов 10544. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нашел в сети класс, благодаря которому можно установить прозрачность у компонента datagridview.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 public class MyDataGridView : DataGridView
    {
        private Image backGroundImage;
        [Browsable(true)]
        public override Image BackgroundImage
        {
            get
            {
                return backGroundImage;
            }
            set
            {
                backGroundImage = value;
            }
        }
        protected override void PaintBackground(Graphics graphics, Rectangle clipBounds, Rectangle gridBounds)
        {
            if (BackgroundColor != null)
                graphics.DrawImageUnscaled(BackgroundImage, gridBounds);
            else
                base.PaintBackground(graphics, clipBounds, gridBounds);
        }
    }
Не совсем разобрался как реализовать прозрачность с помощью этого класса
C#
1
2
3
4
MyDataGridView dgv = new MyDataGridView();
            this.Controls.Add(dgv);
            dgv.Show();
            dgv.BackgroundImage = null;
Может кто помочь?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.12.2012, 15:35
Ответы с готовыми решениями:

Прозрачный фон у PictureBox
У меня в PictureBox ромбик в формате .png. На форме рисуется линия к ромбику. Но эта линия...

Прозрачный фон PictureBox'а
У меня в программе в одном PictureBox'е рисуются линии, а другой маленький PictureBox с картинкой с...

Прозрачный фон в TextBox
Как сделать, чтобы фон текстбокса был прозрачным? просто делаю на картинке и не хотелось белого или...

Прозрачный фон у pictureBox
Как его установить? Ставлю картинку .png, вижу белый задний фон у pictureBox. Хорошо было бы...

5
179 / 179 / 32
Регистрация: 23.11.2012
Сообщений: 344
Записей в блоге: 1
04.12.2012, 15:58 2
C#
1
2
3
4
5
6
7
        protected override void PaintBackground(Graphics graphics, Rectangle clipBounds, Rectangle gridBounds)
        {
            if (BackgroundColor == null && backGroundImage != null)
            {
                graphics.DrawImageUnscaled(BackgroundImage, gridBounds);
            }
        }
Попробуйте так, хотя я не уверен, что это сработает.
1
3 / 3 / 1
Регистрация: 13.12.2011
Сообщений: 89
05.12.2012, 09:02  [ТС] 3
вроде работает, спс

Добавлено через 16 часов 50 минут
У меня есть фон. Мне нужно сделать прозрачные ячейки у компонента DataGridView на форме.

Если в свойствах столбца компонента DataGridView установить прозрачные ячейки (BackColor = Transparent) происходит следующее:
1. если загрузить форму и ткнуть в ячейку или поменять размер столбца DataGridView прозрачность пропадает.
2. если при загрузке формы автоматически заполнить DataGridView и не тыкать в компонент, а передвигать только scrollbars, то каким-то образом фон вырезается и двигается вместе с ячейками.

Кто знает, что это за бред? Или так DataGridView работает?

С помощью выше описанного класса можно только сделать прозрачный сам компонент, а с ячейками получается беда...
0
6048 / 3457 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
05.12.2012, 09:43 4
bypass, в Winforms прозрачность поддерживается только на уровне формы. Для управления прозрачностью контролов по отдельности такой тип приложения не подходит. Для организации такой красоты следует обратить внимание на WPF
0
179 / 179 / 32
Регистрация: 23.11.2012
Сообщений: 344
Записей в блоге: 1
05.12.2012, 09:48 5
SourceGrid вроде бы поддерживает прозрачный фон ячеек.
Разобраться с самим SourceGrid не так и просто (он совершенно не похож на DataGridView), но если разберетесь - получите мощный инструмент для создания таблиц. Плюс SourceGrid поддерживает RowSpan & ColumnSpan.

http://sourcegrid.codeplex.com/
0
2 / 2 / 0
Регистрация: 26.12.2015
Сообщений: 79
09.08.2016, 16:27 6
Я сделал еще проще просто вот так
C#
1
  this.dataGridView1.BackgroundColor = Color.AliceBlue;
0
09.08.2016, 16:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.08.2016, 16:27
Помогаю со студенческими работами здесь

Прозрачный фон pictureBox
Как сделать так чтоьы фон pictureBox был прозрачным но просто изменить BackColor на птранспарент не...

Прозрачный фон Label
на картинке у labela серый квадрат загораживает картинку, как оставить только текст

Прозрачный фон у label'a
Пытаюсь сделать прозрачный фон у лейблов, перерыл весь инет, ниже код всего что смог найти, ничего...

Прозрачный задний фон у PictureBox
Помогите, pictureBox просто отказывается быть прозрачным, ставлю ему цвет заднего фона transparent,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru