Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 13.03.2012
Сообщений: 78

Скриншот столбца в tableLayoutPanel

23.11.2012, 14:29. Показов 1393. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как реализовать?
Есть код на скриншот всей tableLayoutPanel, а как сделать скриншот отдельного столбца не знаю.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public Bitmap getControlScreenshot(Control c)
        {
            Bitmap res = new Bitmap(c.Width, c.Height);
            c.DrawToBitmap(res, new Rectangle(Point.Empty, c.Size));
            return res;
        }
        private void button2_Click(object sender, EventArgs e)
        {
            Bitmap printscreen = getControlScreenshot(tableLayoutPanel1);
            Graphics graphics = Graphics.FromImage(printscreen as Image);
 
 
            SaveFileDialog dialog = new SaveFileDialog();
            dialog.Filter = "Jpeg Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif";
            dialog.Title = "Сохранить рисунок";
            dialog.ShowDialog();
            if (dialog.FileName != string.Empty)
                printscreen.Save(dialog.FileName);
        }
Добавлено через 20 часов 29 минут
Блин, ну помогите кто-нибудь

Добавлено через 22 часа 54 минуты
Это вообще возможно?)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.11.2012, 14:29
Ответы с готовыми решениями:

TableLayoutPanel
Есть такой код. TableLayoutPanel p = new TableLayoutPanel (); p.ColumnCount = 2; p.RowCount = ai.Length - 1; int lw = 0; for...

TableLayoutPanel
Могу ли я программно разместить PictureBox по клеткам tableLayoutPanel. По идеи это массив , значит я могу обратиться к каждой клетки...

TableLayoutPanel
Всем привет. Недавно начал изучать язык C#, поэтому пока многое мне не известно. Уже писал пару мини программ, но это только как в качестве...

3
27 / 27 / 4
Регистрация: 29.01.2012
Сообщений: 160
23.11.2012, 16:30
Думаю да. в методе getControlScreenshot задаешь область (Region).

так что будет наверно примерно так (хотя могу и ошибаться. не проверял)

C#
1
2
3
4
5
6
7
public Bitmap getControlScreenshot(TableLayoutPanel panel, int numberColumn)
        {
int widhtColumn = panel.ColumnStyles[numberColumn].Width; // получаем ширину столбца
            Bitmap res = new Bitmap(widhtColumn , panel.Height);
            panel.DrawToBitmap(res, new Rectangle(0,0,widhtColumn, panel.Height);
            return res;
        }
Добавлено через 15 секунд
Думаю да. в методе getControlScreenshot задаешь область (Region).

так что будет наверно примерно так (хотя могу и ошибаться. не проверял)

C#
1
2
3
4
5
6
7
public Bitmap getControlScreenshot(TableLayoutPanel panel, int numberColumn)
        {
int widhtColumn = panel.ColumnStyles[numberColumn].Width; // получаем ширину столбца
            Bitmap res = new Bitmap(widhtColumn , panel.Height);
            panel.DrawToBitmap(res, new Rectangle(0,0,widhtColumn, panel.Height);
            return res;
        }
0
1 / 1 / 0
Регистрация: 13.03.2012
Сообщений: 78
23.11.2012, 18:53  [ТС]
Что-то не то, то ли тут ошибка, то ли я что-то не понимаю)
0
27 / 27 / 4
Регистрация: 29.01.2012
Сообщений: 160
23.11.2012, 19:12
В смысле?
Код совсем не работает? (у меня там есть пара опечаток)
или не работает так как нужно?

Добавлено через 7 минут
Да. Я поторопился. Нужно еще сделать проверку на тип значения в panel.ColumnStyles[numberColumn] (число пикселей или проценты)

вот теперь думаю правильный код

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public Bitmap getControlScreenshot(TableLayoutPanel panel, int numberColumn)
        {
             int widhtColumn = 0;
             // получаем ширину столбца 
            if (panel.ColumnStyles[numberColumn].SizeType == SizeType.Absolute)
            {
                widhtColumn = (int)panel.ColumnStyles[numberColumn].Width; 
            }
            else
            {
                widhtColumn = (int)(panel.Width * panel.ColumnStyles[numberColumn].Width/100.0);
            }
           
            Bitmap res = new Bitmap(widhtColumn , panel.Height);
            panel.DrawToBitmap(res, new Rectangle(0, 0, widhtColumn, panel.Height));
            return res;
        }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.11.2012, 19:12
Помогаю со студенческими работами здесь

TableLayoutPanel выравнивание
Здравствуйте есть форма на ней tablelayoutpanel который имеет 1 строку и 3 столбца. В 2ух из них label, а в центре combobox Вот...

Tablelayoutpanel заполнение
всем доброе утро. искал алгоритм заполнения панели автоматом. но ничего путного не нашел. может у кого есть код, поделитесь)

TableLayoutPanel аналог CheckedListBox
Здравствуйте! Нужно реализовать аналог СheckedListBox, сейчас он и используется. А нужно это для того что бы можно было отдельно ставить...

Движения кнопок в TableLayoutPanel
Как двигать кнопку из одного столбца к другому в TableLayoutPanel.

TableLayoutPanel. Заполнение из массива
Как мне заолнить TableLayoutPanel размером 10 на 10 значениями из масива mass?


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru