2012-01-11 68 views
-3

我有以下代码,我试图检索光标/鼠标位置当它是绘制阵列和输出它到实验室过来:检索鼠标位置

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();** 
      } 
    } 
} 

但是我有麻烦行内双星号,任何人都可以帮我解决这个错误?

+0

什么错误?你还没有给出一个。 – 2012-01-11 12:26:48

+0

您必须删除双星号。代码不会在那里编译;它会给你一个语法错误。 – 2012-01-11 12:45:41

+0

什么问题?你得到的输出是什么,你期望的输出是什么? – matteeyah 2012-01-11 12:22:59

回答

0

你可以尝试这样的事情。它可能不是做的最好的方式,但它给人的形式更新的标签在你的“阵列”每个单元之间的鼠标移动的期望的结果:

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; 
}