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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Координатная сетка 2, Рано закрыли тему, есть еще вопросы! 
:(
    Опции темы
4YBAK
Дата 29.3.2006, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Код

Нижеприведенный код делает все то, что я писал в предыдущей теме
private void panel1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            
            double X=e.X/40;
            double Y=e.Y/40;
            double XNew=Math.Round(X);
            double YNew=Math.Round(Y);
            Cursor.Position=new Point((int)XNew*40,(int)YNew*40);
                        
        }

НО!
Cursor.Position устанавливает курсор, считая от левого верхнего угла МОНИТОРА.
А нужно, чтобы от левого верхнего угла ПАНЕЛА!
Как это сделать?
PM MAIL   Вверх
mr.DUDA
Дата 29.3.2006, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Cursor.Position=panel1.PointToScreen(new Point((int)XNew*40,(int)YNew*40));


--------------------
user posted image
PM MAIL WWW   Вверх
4YBAK
Дата 29.3.2006, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Я неправильно сформулировал вопрос. (хотя ответ на него мне по-любому пригодится, так что пасиба!)
Вопрос же вот в чем:
Чтобы при клике мышой в левый верхний угол ПАНЕЛА, e.X и e.Y, вынутые из МаусДаун были равны нулю.
Добавлено @ 19:51
Когда
Cursor.Position=new Point((int)XNew*40,(int)YNew*40);
то так оно и есть - левый верхний угол с координатами 0,0
Но мышь перемещается не в точку 0,0 относительно ПАНЕЛА, а в точку 0,0 относительно монитора.

В случае же с
Cursor.Position=panel1.PointToScreen(new Point((int)XNew*40,(int)YNew*40));
ситуация противоположная:
Мышь прыгает куда надо, а вот координаты считаются не от панела, а от монитора.




PM MAIL   Вверх
4YBAK
Дата 29.3.2006, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Предыдущий вопрос снимаю.
Сам себе, блин, придумал проблему, там где ее нет smile
Вобщем, все пучком и спасибо за Cursor.Position=panel1.PointToScreen(new Point((int)XNew*40,(int)YNew*40));
Добавлено @ 22:07
з.ы. Тему пока не закрывайте, возможно, еще будут вопросы!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




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


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

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