Здравствуйте, Artem_N, Вы писали:
A_N>Подойдёт, но это слишком просто
Каждый Буратино сам себе дятел (с)
A_N>Есть одна проблема. Код в событии MouseMove для mainPanel следующий (C#):
A_N>=== A_N>Cursor _Cursor = Cursors.Default; A_N>... A_N>toolTipCoo.SetToolTip( mainPanel, pt.Y.ToString() ); A_N>_Cursor = Cursors.Cross; A_N>... A_N>this.Cursor = _Cursor; A_N>===
A_N>Подсказка появляется. Но при перемещении указателя происходит постоянная смена курсора со стрелки на крестик. В чём косяк -- я не понимаю...
Дык ты сам его и меняешь в строчке следующей за установкой тултипа
A_N>>Подойдёт, но это слишком просто W>Каждый Буратино сам себе дятел (с)
Мы не ищем лёгких путей (с)
A_N>>Есть одна проблема. Код в событии MouseMove для mainPanel следующий (C#): A_N>>Cursor _Cursor = Cursors.Default; A_N>>... A_N>>toolTipCoo.SetToolTip( mainPanel, pt.Y.ToString() ); A_N>>_Cursor = Cursors.Cross;
A_N>>Подсказка появляется. Но при перемещении указателя происходит постоянная смена курсора со стрелки на крестик. В чём косяк -- я не понимаю... W>Дык ты сам его и меняешь в строчке следующей за установкой тултипа
Ага, так и задумано. Суть в том, что если закомментировать SetToolTip, то изменения мышинного курсора туда-сюда не происходит.
Здравствуйте, Artem_N, Вы писали:
A_N>Как правильно сделать? Динмаически формировать картинку и подсовывать её this.Cursor?
Вот туповатый метод, который я использовал для одного инострнного клиента.
Если датите мыло вышлю коды.
This is one of the variants of the similar task’s solving.
The basic idea – to create for cursor of the special form (CursorForm) with label (label1).
For CursorForm you must set several properties
ControlBox = false;
FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
ShowInTaskbar = false;
TopMost = true;
TransparencyKey = System.Drawing.SystemColors.Control;
BackColor = System.Drawing.SystemColors.Control;
For label1 you must set
label1.AutoSize = true;
label1.Visible = false;
label1.FlatStyle = System.Windows.Forms.FlatStyle.System;
label1.BackColor = System.Drawing.SystemColors.Control;
It is important cursorForm.BackColor = cursorForm.TransparencyKey = label1.BackColor.
In the test form (Form1) you must add
private System.Windows.Forms.Label label1; (source of drag&drop);
private System.Windows.Forms.Label label2; (receiver of drag&drop);
private CursorForm cursorForm; (object of our special form (CursorForm);
and events for implementation of drag&drop label1_MouseDown, label1_MouseMove, label1_MouseUp (see comments in Form1.cs).
Additionally, you can control opacity of text in cursor (set property cursorForm.Opacity).
Another variant to solve this task which I known (theoretically) get image (Bitmap) of source drag&drop object; set visible only pixels of text, using MakeTransparent method; create new Cursor’s object from Bitmap and set this cursor. But, I can get image of object (control), using only unmanaged code. It isn’t good and more difficult.
Здравствуйте, Vitaton, Вы писали:
A_N>>Как правильно сделать? Динмаически формировать картинку и подсовывать её this.Cursor? V>Вот туповатый метод, который я использовал для одного инострнного клиента. V>Если датите мыло вышлю коды.
Нижеуказанный вами способ реализовал. Работает Оригинально, мне такая идея в голову не приходила. Но слишком уж жёстко заводить новую форму для этого. Попробую сделать перемещаемый label в основной форме.
Спасибо за идею.