2014-11-04 78 views
-3

我是C#的新手,我正在創建Q + A Forms應用程序。我在「txt.AcceptsReturn = true;」一行中收到「無法檢測到的代碼」警告。我曾嘗試在行上使用#pragma警告禁用,但它不會執行那段代碼。 任何幫助,將不勝感激,謝謝!檢測到無法訪問的代碼c#表格

namespace WindowsFormsApplication11 
{ 
    public partial class c1l1 : Form 
    { 
     int cLeft = 1; 
     public c1l1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      TextBox t= new TextBox(); 

      t.Text = "Enter the question for Category 1, Level 1"; 
      String t2; 
      t2 = t.Text; 
      MessageBox.Show(t2); 

      AddNewTextBox(); 

     } 

     public System.Windows.Forms.TextBox AddNewTextBox() 
     { 
      System.Windows.Forms.TextBox txt = new System.Windows.Forms.TextBox(); 
      this.Controls.Add(txt); 
      txt.Top = cLeft * 25; 
      txt.Left = 100; 
      txt.Text = "TextBox " + this.cLeft.ToString(); 
      cLeft = cLeft + 1; 
      return txt; 

      txt.AcceptsReturn = true; 

      KeyEventArgs e; 
      if (txt.Text != null && e.KeyCode == Keys.Enter) 
      { 
       txt.Visible = false; 
      } 
     } 
    } 
} 
+4

你是從方法上面該線路的線路返回。它永遠不會被達到,因爲你已經返回。 – 2014-11-04 16:21:41

+2

返回關鍵字信號函數的結尾 – 2014-11-04 16:24:28

+0

該函數的意圖不清楚。 – ja72 2014-11-04 18:03:16

回答

1

您不能在C#中的return語句之後編寫任何代碼。

public System.Windows.Forms.TextBox AddNewTextBox() 
    { 
     System.Windows.Forms.TextBox txt = new System.Windows.Forms.TextBox(); 
     this.Controls.Add(txt); 
     txt.Top = cLeft * 25; 
     txt.Left = 100; 
     txt.Text = "TextBox " + this.cLeft.ToString(); 
     cLeft = cLeft + 1; 


     txt.AcceptsReturn = true; 

     KeyEventArgs e; 
     if (txt.Text != null && e.KeyCode == Keys.Enter) 
     { 
      txt.Visible = false; 
     } 

     return txt; 

}

0

基本上「無法訪問的代碼檢測」不過是代碼永遠不會執行的,所以如果你看到你的代碼,你試圖在功能上線之前返回值正在執行下面的return語句。因此,請檢查您的要求,並根據該地點的函數返回聲明,這將解決您的問題。

讓我知道你是否需要進一步的幫助。 :)

1

以下的任何內容return txt;將永遠不會執行。你需要找出你真正想要返回的值TXT

public System.Windows.Forms.TextBox AddNewTextBox() 
    { 
     System.Windows.Forms.TextBox txt = new System.Windows.Forms.TextBox(); 
     this.Controls.Add(txt); 
     txt.Top = cLeft * 25; 
     txt.Left = 100; 
     txt.Text = "TextBox " + this.cLeft.ToString(); 
     cLeft = cLeft + 1; 
     return txt; //Everything below this line will never get executed 

     txt.AcceptsReturn = true; 

     KeyEventArgs e; 
     if (txt.Text != null && e.KeyCode == Keys.Enter) 
     { 
      txt.Visible = false; 
     } 
    } 
0

你寫的代碼返回塊,靜態代碼分析可以看到永遠不會到達後。

很可能你已經錯放你的return語句 - 任何像樣的IDE將突出這個,因爲它很容易檢查