Я использую EyeShot 12. Я создаю прямоугольник, используя EyeShot Линия Сущность, она имеет 2 измерения по длине и ширине.
Моя функциональность включает в себя изменение размера текста , используя action-> SelectByPick, затем выбирая любое измерение и изменяя его значение, вызывая TextBox , чтобы пользователь мог добавить значение. Здесь TextBox выскакивает на месте указателя мыши.
В дальнейшем я нажимаю Tab (кнопка клавиатуры), чтобы переключиться на следующее измерение, а также убедиться, что конкретное измерение выделено. Но меня беспокоит то, что я не могу найти TextBox рядом с этим выделенным измерением.
Я могу найти положение существующей Линии (соответствующее выбранному измерению) в Координаты Eyeshot , но TextBox требует экранных координат значение для точного позиционирования.
Поэтому я использую control.PointToScreen для преобразования координат точки обзора в экран, но он возвращаетТочка, которая совпадает с координатами Eyeshot.
код:
foreach (Entity ent in model1.Entities)
{
if (ent.Selected)
{
Line lin = (Line)ent;
Point3D midpt = lin.MidPoint;
string newpt1X = midpt.X.ToString();
string newpt1Y = midpt.Y.ToString();
System.Drawing.Point startPtX = model1.PointToScreen(new
System.Drawing.Point(int.Parse(newpt1X) + 20, int.Parse(newpt1Y) + 20));
TextBox tb = new TextBox();
tb.Text = "some text";
tb.Width = 50;
tb.Location = startPtX;
model1.Controls.Add(tb);
}
Я искал другие результаты, но все переключаются на PointToScreen, чтобы получить это преобразование.
Надеяськто-то может указать, что я делаю.
Заранее спасибо
Сурадж