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

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

14.03.2011, 16:51. Показов 2035. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru