С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
 Аватар для cpentyc
48 / 47 / 4
Регистрация: 26.05.2010
Сообщений: 230

Как называется этот элемент управления и где он находится?

14.03.2011, 16:51. Показов 2014. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как называется этот элемент управления и где он находится?
В Paint-е когда создаешь фигуру она нафодится в каком то контейнере. что это за элемент управления?
Изображения
 
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.03.2011, 16:51
Ответы с готовыми решениями:

Как называется этот элемент управления
Здравствуйте! Подскажите пожалуйста как называется этот элемент (типа TextBox, но с кнопочкой справа) управления в Visual studio 2008(если...

Найти наименьший элемент матрицы и записать в строку, где находится этот элемент
5. Найти наименьший элемент матрицы и записать в строку, где находится этот элемент 10. Размер матрицы вводится с клавиатуры. Элементы...

Массив: Найти наименьший элемент матрицы и записать в строку, где находится этот элемент 10.
Найти наименьший элемент матрицы и записать в строку, где находится этот элемент 10. Размер матрицы вводится с клавиатуры. Элементы матрицы...

4
194 / 193 / 17
Регистрация: 07.11.2010
Сообщений: 477
14.03.2011, 17:20
Возможно PictureBox.Image - то что нужно. А нет.. Не сразу понял смысл вопроса )

С толку сбило слово "контейнер" - было бы понятнее "резиновая рамка для изменения размеров/положения"

Добавлено через 25 минут
Поскольку ссылки на другие форумы давать вроде нельзя, то даю не мою статью целиком

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

Для рисования рамки можно использовать старые функции с операциями растеризации, такие как XOR. Растеризация специфична для старого графического интерфейса GDI и отсутствует в новой реализации GDI+. Раньше, мы должны были рисовать прямоугольник, используя включенный режим растеризации ROP2_XORPEN. Чтобы стереть рамку, не нужно перерисовывать всю сцену, достаточно еще раз нарисовать рамку, и она исчезнет.

Новый интерфейс не содержит нужных операций, а главная проблема в том, что.NET Framework не реализует GDI а методы System.Drawing основаны на GDI+. Что мы можем сделать для рисовании рамки в.NET Framework? Мы можем произвести вызов системных функций через platform invocation, но в данном случае, я не рекомендую делать этого. Обращение к системе в этом случае является не оправданным шагом и вам придется неоправданно привязываться к ОС, вместо использования 100% .NET. К тому же, есть очень простой и удобный статический метод - DrawReversibleFrame() из ControlPaint пример использования которого показан в следующем примере (это маленький отрывок из одного из моих проектов):

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public class YourClass
{
  Point dragPoint;
  bool dragging = false;
 
  void DrawDraggingShape()
  {
    Point startPont = mapPanel.PointToScreen(dragPoint);
    ControlPaint.DrawReversibleFrame(new Rectangle(startPont, Size),
      Color.Red, FrameStyle.Dashed);
  }            
 
  private void mapPanel_MouseDown(object sender, MouseEventArgs e)
  {
    dragging = true;
    dragPoint = e.Location;
    DrawDraggingShape();
  }  
 
  private void mapPanel_MouseMove(object sender, MouseEventArgs e)
  {
    if (dragging)
    {
      DrawDraggingShape();
      dragPoint = e.Location;
      DrawDraggingShape();
    }
  }
 
  private void mapPanel_MouseUp(object sender, MouseEventArgs e)
  {
    if (dragging)
    {
      dragging = false;
      DrawDraggingShape();
    }
  }
}
Использование DrawReversibleFrame схоже с старым методом рисования. Когда вы рисуете рамку в первый раз, она отображается на экране. Чтобы стереть рамку, достаточно нарисовать рамку второй раз с теми же координатами.

Я не запрещаю использовать старый метод. Если вам удобно и нравиться, можете привязаться к ОС и использовать GDI, но мне кажеться, GDI+ проще и удобнее.
1
 Аватар для cpentyc
48 / 47 / 4
Регистрация: 26.05.2010
Сообщений: 230
14.03.2011, 17:29  [ТС]
Спасибо а можно ссылку в личку
0
194 / 193 / 17
Регистрация: 07.11.2010
Сообщений: 477
14.03.2011, 18:01
Цитата Сообщение от cpentyc Посмотреть сообщение
Спасибо а можно ссылку в личку
отправил. Но все что там было я процитировал выше
0
 Аватар для cpentyc
48 / 47 / 4
Регистрация: 26.05.2010
Сообщений: 230
14.03.2011, 18:23  [ТС]
Не совсем подходит решение.
1 нет маркеров за которые изменяешь размер объекта
2 Рамка ведет себя не правильно
3 после отпускания рамка стирается
Решил 2 пункт
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 Point dragPoint;
        bool dragging = false;
        Rectangle Rec = new Rectangle();
 
        void DrawDraggingShape()
        {
            Point startPont = mapPanel.PointToScreen(dragPoint);            
            Rec.Size = new Size((  startPont.X-Rec.X),( startPont.Y-Rec.Y ));
            ControlPaint.DrawReversibleFrame(Rec, Color.Red, FrameStyle.Dashed);            
        }       
 
        private void mapPanel_MouseDown(object sender, MouseEventArgs e)
        {
            dragging = true;
            dragPoint = e.Location;
            Rec.Location = mapPanel.PointToScreen(dragPoint);
            Rec.Size = new Size(0,0);
            DrawDraggingShape();
        }
 
        private void mapPanel_MouseMove(object sender, MouseEventArgs e)
        {
            if (dragging)
            {               
                DrawDraggingShape();
                dragPoint = e.Location;
                DrawDraggingShape();
            }
        }
 
        private void mapPanel_MouseUp(object sender, MouseEventArgs e)
        {
            if (dragging)
            {
                dragging = false;
                DrawDraggingShape();
            }
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.03.2011, 18:23
Помогаю со студенческими работами здесь

Найти минимальный элемент, записать нули в строку и столбец, где этот элемент находится
Из файла F прочесть матрицу М(10,15) .Найти минимальный элемент этой матрицы, записать нули в строку и в столбец, где этот элемент...

Динамические массивы: Найти наименьший элемент матрицы и записать в строку, где находится этот элемент 10
Найти наименьший элемент матрицы и записать в строку, где находится этот элемент 10. Размер матрицы вводится с клавиатуры. Элементы матрицы...

из списка в userform узнать где находится этот элемент на листе
Ну вот никак не могу понять,как это реализовать,помогите или ткните в какую сторону копать Суть такова:у меня есть набор книг...

В k-ой строке найти max элемент. В том столбце, где этот элемент находится, найти сумму положительных
При помощи подпрограммы, работающей с вектором.

Как называется элемент управления
Как в Visual Studio называется этот элемент (в котором вписан текст)? В панели найти похожий не могу.


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru