Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检索鼠标位置_C#_Winforms - Fatal编程技术网

C# 检索鼠标位置

C# 检索鼠标位置,c#,winforms,C#,Winforms,我有以下代码,试图在光标/鼠标位于绘制的数组上时检索光标/鼠标位置,并将其输出到实验室: Label[ , ] _arr = new Label[4 , 4]; private void Form1_Load(object sender, EventArgs e) { for(int i=0;i<4;i++) { for(int j=0;j<4;j++) { _arr[i ,j] = n

我有以下代码,试图在光标/鼠标位于绘制的数组上时检索光标/鼠标位置,并将其输出到实验室:

Label[ , ] _arr = new Label[4 , 4];

private void Form1_Load(object sender, EventArgs e) 
{  
    for(int i=0;i<4;i++)
    {    
        for(int j=0;j<4;j++)
           {
              _arr[i ,j] = new Label();        
              _arr[i ,j].Text = ""+i+","+j;  
              _arr[i ,j].Size = new Size(50,50);        
              _arr[i ,j].Location = new Point(j*50,i*50);         //you can set other property here like Border or else         
              _arr[i, j].BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle ;   
              this.Controls.Add(_arr[i ,j]);
              **label2.Text = _arr[i, j].(System.Windows.Forms.Control.MousePosition).ToString();**
           }  
    }
}  
Label[,]_arr=新标签[4,4];
私有void Form1\u加载(对象发送方、事件参数e)
{  

对于(int i=0;i您可以尝试类似的方法。这可能不是最好的方法,但当鼠标在窗体上的“数组”中的每个单元格之间移动时,它会提供所需的更新标签的结果:

private void Form1_Load(object sender, EventArgs e)
{
            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 4; j++)
                {
                    _arr[i, j] = new Label();
                    _arr[i, j].Text = "" + i + "," + j;
                    _arr[i, j].Size = new Size(50, 50);
                    _arr[i, j].Location = new Point(j * 50, i * 50);         //you can set other property here like Border or else         
                    _arr[i, j].BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
                    this.Controls.Add(_arr[i, j]);

                    _arr[i, j].MouseMove += new MouseEventHandler(Form1_MouseMove);
                }
            }
}

void Form1_MouseMove(object sender, MouseEventArgs e)
{
    label1.Text = ((Label)sender).Text;
}
private void Form1\u加载(对象发送方,事件参数e)
{
对于(int i=0;i<4;i++)
{
对于(int j=0;j<4;j++)
{
_arr[i,j]=新标签();
_arr[i,j].Text=“+i+”,“+j;
_arr[i,j].尺寸=新尺寸(50,50);
_arr[i,j].Location=new Point(j*50,i*50);//您可以在此处设置其他属性,如Border或else
_arr[i,j].BorderStyle=System.Windows.Forms.BorderStyle.FixedSingle;
this.Controls.Add(_arr[i,j]);
_arr[i,j].MouseMove+=新的MouseEventHandler(Form1\u MouseMove);
}
}
}
void Form1\u MouseMove(对象发送器,MouseEventArgs e)
{
label1.Text=((标签)发送者).Text;
}

问题出在哪里?您得到的输出是什么?您期望的输出是什么?我尝试过,但值不会改变,而如果鼠标移动到表单的任何其他部分,值就会改变,就好像数组阻止了这个错误。什么错误?您没有给出一个错误。您必须删除双星号。代码不会改变在那里使用它们进行编译;它会给您一个语法错误。