2013-05-14 15 views
2

有效這是一個例子,形成了「深入淺出CSHARP - 113頁」 我收到以下錯誤是一個「方法」,這是不是在給定上下文錯誤

錯誤1「夥計們。 Form1.joesCashLabel(對象,System.EventArgs)」是 '方法',它是不是在給定的上下文C時有效:\ TEMP \專家\專家\ Form1.cs中20名12專家

而同樣具有另外兩個標籤

這是代碼:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace Guys 
{ 
    public partial class Form1 : Form 
    { 
     Guy Joe; 
     Guy Bob; 
     int Bank = 100; 

     public void UpdateForm() 
     { 
      joesCashLabel.Text = Joe.Name + "$" + Joe.Money; 
      bobsCashLabel.Text = Bob.Name + "$" + Bob.Money; 
      bankCashLabel.Text = "Bank has" + Bank; 
     } 


     public Form1() 
     { 
      InitializeComponent(); 

      Guy Bob = new Guy(); 
      Bob.Name = "Bob"; 
      Bob.Money =100; 

      Guy Joe = new Guy(); 
      Joe.Name = "Joe"; 
      Joe.Money =50; 

      UpdateForm(); 

     } 

     private void joesCashLabel(object sender, EventArgs e) 
     { 

     } 

     private void bobsCashLabel(object sender, EventArgs e) 
     { 

     } 

     private void bankCashLabel(object sender, EventArgs e) 
     { 

     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      if (Bank >= 10) 
      { 
       Bank -= Joe.ReceiveMoney(10); 
       UpdateForm(); 
      } 
      else 
      { 
       MessageBox.Show("No money in the bank"); 
      } 

     } 

     private void button2_Click(object sender, EventArgs e) 
     { 
      Bank = Bank + Bob.GiveMoney(5); 
      UpdateForm(); 
     } 
    } 
} 
+6

標準你可以通過看你的代碼中看到,'joesCashLabel'其實方法。你正在使用它,好像它是一個文本框。 – 2013-05-14 16:19:27

+1

在您的項目瀏覽器中,可能有一個名爲「Form1.Designer.cs」的文件。雖然你永遠不應該改變**設計器文件中的代碼,但是我們也許能夠從閱讀中收集一些信息。你可以發佈該文件的代碼嗎? – 2013-05-14 16:35:08

回答

3

您不能在同一個項目中使用相同名稱定義兩種類型,這裏有三個控件和三個同名的事件。所以刪除下面的方法來編譯沒有錯誤。

private void joesCashLabel(object sender, EventArgs e){} 

private void bobsCashLabel(object sender, EventArgs e){} 

private void bankCashLabel(object sender, EventArgs e){} 

如果你想添加事件確保你跟隨命名像ControlName_EventName

+1

謝謝你Damith - 對你很有幫助 – 2013-05-16 14:32:23

+0

我已經意識到了一些東西 - 我已經從公衆Form1中刪除了「Guy」() {Guy Bob = new Guy();} 並且讓它變得如此.... Bob =新的Guy();現在它可以工作。我已經聲明瞭一個變量兩次。這是錯誤的 – 2013-05-16 14:50:52

1

這是一個方法(在那個事件),

private void joesCashLabel(object sender, EventArgs e) 
{ 

} 

,但你使用它作爲一個變量

joesCashLabel.Text = Joe.Name + "$" + Joe.Money; 

我的猜測,被認爲有某種標籤的那該事件應該與之相關聯。

相關問題