你可以通过控件的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#中 如何获取鼠标在控件坐标系中的坐标并实时显示,不是屏幕坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)