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

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> возможно ли узнать координаты клика на форме? а так же вопрос по Brush^/Color 
V
    Опции темы
beyond11
Дата 13.1.2008, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



есть 2 вопроса. вернее 3.

вопрос первый - как узнать координаты клика на форме? объясняю ситуацию - есть куча квадратиков, по нажатии на каждый из них, именно он должен закрашиваться в определенный выбранный цвет. квадратики я нарисовал, осиалось выяснить, как узнать где именно на форме я кликнул, тогда проблема решена. можно конечно сделать для каждого квадратика свой pictureBox, но квадратиков 100, а 100 объектов на форму цеплять не хочется. помогите если кто знает 

вопрос 2 - как переделать типа Brush в тип Color, и обратно? дело в том что если рисовать прямоугольник DrawRectangle, то для задания цвета линии используется тип Color, но мне нужны закрашенные прямоугольники, для этого надо использовать FillRectangle (закрашенный прямоугольник), а он для закрашивания требует тип Brush. 
может есть ещё какие-то варианты, с помощью которых можно нарисовать закрашенный квадрат с цветом типа Color?

вопрос 3 - допустим у меня есть переменная типа Color, как я могу сохранить её значение в файл, а потом загрузить и поместить его обратно в переменную? (могу сохранить в текстовый файл, но как это сделать? и как потом обратно переделать в переменную типа Color?), (например значение Color::Blue)
PM MAIL   Вверх
bogys
Дата 13.1.2008, 17:34 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



1) 
.....   
      Rectangle  rectangl = new Rectangle(......);
....
       в обработчике какомто MouseUp, MouseDown....
        Point mousePT = new Point(e.X, e.Y);
         if (rectangl.Contains(mousePT))   // знач попали в квадрат


3) Цвет можна  и так получить:  Color cl = Color.FromArgb(50, 0, 0, 255);  а цыфры уже легко сохранять в файле

Это сообщение отредактировал(а) bogys - 13.1.2008, 17:56
PM MAIL   Вверх
beyond11
Дата 13.1.2008, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(bogys @ 13.1.2008,  17:34)
3) Цвет можна  и так получить:  Color cl = Color.FromArgb(50, 0, 0, 255);  а цыфры уже легко сохранять в файле

легко.
это да.
но я забыл сказать, что цвет должен выбираться посредством ColorDialog, а он выдаёт цвет типа Color
PM MAIL   Вверх
bogys
Дата 13.1.2008, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(beyond11 @  13.1.2008,  18:03 Найти цитируемый пост)
но я забыл сказать, что цвет должен выбираться посредством ColorDialog, а он выдаёт цвет типа Color


Color cl = сolorDialog.Color;

испоьзуй свойства 
cl.A
cl.R
cl.G
cl.B

Это сообщение отредактировал(а) bogys - 13.1.2008, 18:47
PM MAIL   Вверх
1stain
Дата 13.1.2008, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 30.7.2007
Где: Киев - Харьков

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



bogys, а позвольте узнать, каким образом Вы предлагаете сохранять в файл составляющие цвета?


--------------------
Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно - он-то и делает открытие. (Albert Einstein)
user posted image
PM MAIL   Вверх
bogys
Дата 13.1.2008, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(1stain @  13.1.2008,  18:50 Найти цитируемый пост)
bogys, а позвольте узнать, каким образом Вы предлагаете сохранять в файл составляющие цвета?


предлагая сохранять значения, которые отвечают за оттенок цвета,  просто 4 числа 
Или что Вы имели введу?
PM MAIL   Вверх
1stain
Дата 13.1.2008, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 30.7.2007
Где: Киев - Харьков

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



я имел ввиду, что все классы и структуры из фреймверка, которые помечены атрибутом Serializable, можно сохранять непосредственно.
Код

        Color c = Color.Indigo;
        System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
        using (Stream stream = new FileStream("test.sav", FileMode.OpenOrCreate, FileAccess.Write))
        {
            formatter.Serialize(stream, c);
        }

        Color cc;
        using (Stream stream = new FileStream("test.sav", FileMode.Open, FileAccess.Read))
        {
            cc = (Color)formatter.Deserialize(stream);
        }



--------------------
Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно - он-то и делает открытие. (Albert Einstein)
user posted image
PM MAIL   Вверх
bogys
Дата 13.1.2008, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Чувствовал, что есть какой-то оригинальный способ....

1stain, спасибо, теперь буду знать.
PM MAIL   Вверх
beyond11
Дата 14.1.2008, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



всем спасибо))
с координатами клика разобрался, с цветом тоже, с Brush/Color разобрался...

есть новая проблема:
как сделать массив переменных типа Color, размером к примеру 10 на 10 ?
как его объявлять? вообще не пойму.
Color colors[10][10]; - ругается..
Код

error C2728: 'System::Drawing::Color' : a native array cannot contain this managed type
        Did you mean 'array<System::Drawing::Color>'?

Color* colors[10][10]; - не ругается, но когда задаю цвет из этого массива как цвет линии, пишет что не может переконвертировать из System::Drawing::Color* в System::Drawing::Color

честно говоря, вообще не въезжаю пока что значит этот символ - *, но важно не это
если кто знает как праильно создать этот массив, подскажите плиз.
PM MAIL   Вверх
mr.DUDA
Дата 14.1.2008, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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




M
mr.DUDA
Одна тема - один вопрос с уточнениями, если до конца не понятно. Тема закрыта.



--------------------
user posted image
PM MAIL WWW   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




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


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

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