c#中怎么获取鼠标在控件中(如:richTextBox)的位置,即坐标

c#中怎么获取鼠标在控件中(如:richTextBox)的位置,即坐标,第1张

你可以通过控件的MouseClick事件里MouseEventArgs参数获得,也可以通过控件的PointToClient方法计算,如下

private void richTextBox1_MouseClick(object sender, MouseEventArgs e)

{

MessageBoxShow("横坐标:" + eXToString() + "\n纵坐标:" + eYToString());

//或

MessageBoxShow("横坐标:" + richTextBox1PointToClient(MousePosition)XToString() +

"\n纵坐标:" + richTextBox1PointToClient(MousePosition)YToString());

}

在MouseMove事件中可以得到鼠标的位置,再用TwipsToChartPart方法就可以知道当前位置对应的是Chart的哪个部分。不过,这个方法的使用不太方便。你可以使用下面的代码:PrivateSub

MSChart1_MouseDown(Button

As

Integer,

Shift

As

Integer,

X

As

Single,

Y

As

Single)

Dim

whichPart

As

Integer,

whichSeries

As

Integer

Dim

whichNumber

As

Integer

MSChart1TwipsToChartPart

X,

Y,

whichPart,

whichSeries,

whichNumber,

0,

0

DebugPrint

whichPart,

whichSeries,

whichNumberEndSub

你可以在某条曲线上点一下,这时整条曲线被选中,上面的代码输出的whichPart值为VtChPartTypeSeries(5),表示一个序列被选中了,whichSeries表示序列号。如果你在这条选中的曲线的不是节点的某个位置上点一下,这时某个节点被选中,上面的代码输出的whichPart值为VtChPartTypePoint(7),whichNumber表示是序列中的哪个点,你就可以利用这些信息知道用户选择了哪个数据。但是MSChart的这种方式对用户不是很方便。

要在窗体上加一个TextBox控件,设置visible属性为false另外

mschart1DoSetCursor=

falsePrivateSub

MSChart1_MouseMove(Button

As

Integer,

Shift

As

Integer,

X

As

Single,

Y

As

Single)

Dim

whichPart

As

Integer,

whichSeries

As

Integer

Dim

whichNumber

As

Integer

MSChart1TwipsToChartPart

X,

Y,

whichPart,

whichSeries,

whichNumber,

0,

0

MSChart1AllowSeriesSelection

=

False

If

whichPart

<

7

Or

whichSeries

<

1

Then

Text1Visible

=

FalseElse

Text1Top

=

Y

+

MSChart1Top

+

300

Text1Left

=

X

+

MSChart1Left

+

200

Text1Text

=

str(whichPart)

&

Chr(13)

&

Chr(10)

&

str(whichSeries)

&

Chr(13)

&

Chr(10)

&

你想获取鼠标在控件(窗体)上的坐标,就在控件(窗体)的 MouseMove 事件里写。

比如button3 按钮:

private void button3_MouseMove(object sender, MouseEventArgs e)

{

label1Text = eXToString();

label2Text = eYToString();

}

希望是你要的效果。。。。

这貌似属于数学问题,思路:

❶取得光标指向的纵轴最近的两点数据,

❷计算出点和点连成的直线相交的点的坐标,

❸然后把坐标的Y按比例还原成数据。

其中第二步嗯嘛。。很麻烦

procedure TForm1Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

var

xx,yy:Double;

begin

Chart1Series[0]GetCursorValues(xx,yy);

Label1Caption:=floattostr(xx);

Label2Caption:=floattostr(yy);

end;

以上就是关于c#中怎么获取鼠标在控件中(如:richTextBox)的位置,即坐标全部的内容,包括:c#中怎么获取鼠标在控件中(如:richTextBox)的位置,即坐标、mschart控件如何使鼠标移动到数据标记上时显示相应的内容、c#中 如何获取鼠标在控件坐标系中的坐标并实时显示,不是屏幕坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9754780.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存