2017-03-27 20 views
-1

我一直在搞ProgressBar,我想知道如何使用TextBox更改ProgressBar的值。因此,如果您在0到99之間鍵入TextBox中的值,然後按回車鍵,則ProgressBar的值將更改爲您鍵入的值。如何使用文本框更改ProgressBar的值

我該怎麼做? VS表示TextBox1.Text不能用作方法。

這是我目前擁有的代碼:

if (e.KeyCode == Keys.Enter) 
     { 
      progressBar1.Value = textBox1.Text(); 
     } 

我試過這個(沒有工作):

int i = Convert.ToInt32(textBox1.Text); 
     i = 1; 
if (e.KeyCode == Keys.Enter) 
     { 
      progressBar1.Value = textBox1.Text(); 
     } 

在VB.NET我只需要輸入以下代碼,那麼它會工作:

If e.KeyCode = Keys.Enter Then 
     ProgressBar1.Value = Val(TextBox1.Text) 
End If 

有誰知道我該如何解決這個問題?另外,我怎麼能說在C#val(something)

是否可以在C#中使用VB.NET中使用的相同代碼?

+1

使用'textBox1.Text;'而不是'textBox1.Text()' –

+1

刪除文本之後的括號:textBox1.Text; – Versatile

+0

爲什麼你必須用兩種語言編寫這段代碼? – LarsTech

回答

0

因爲它不是一種方法,而是一種屬性!因此,只要

progressBar1.Value = Int32.Parse(textBox1.Text); 

法類連接:

objectOfSomeClass.MethodName(); 

房產類:

objectOfSomeClass.propertyName; 

重要事項:
當你把鼠標停留在變量上你會看到類型這個元素。如果你到目前爲止,我會告訴你什麼類型的東西:)
每個對象都可以有屬性和方法。像文本框中的字符串屬性稱爲「文本」。對象也可以包含一個方法。要使用你需要括號中的方法,因爲他們中的一些可以處理參數:)

第二個問題:
添加到您的表格(你這樣定義button_click事件的地方):

private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) 
{ 
    if(e.keyCode == ... 
} 

檢查這
https://msdn.microsoft.com/en-us/library/system.windows.forms.control.keypress(v=vs.110).aspx

+0

我也嘗試過,但後來'textBox.Text'得到一個紅線,它說「不能隱式地將類型'字符串'轉換爲'int'」。 – Emre

+0

現在嘗試,我加了解析方法 –

+0

謝謝你的工作,但你有我的第二個問題的答案? – Emre

0
int i = Convert.ToInt32(textBox1.Text); 
if (e.KeyCode == Keys.Enter) 
     { 
      progressBar1.Value = i; 
     } 

刪除text1.text放我。你的問題將解決。

+0

紅線消失,我想了一會兒,它解決了,直到我嘗試在文本框中鍵入內容。應用程序停止並且視覺工作室進入'int i = Convert.ToInt32(textBox1.Text);' – Emre

+0

'int i = Convert.ToInt32(textBox1.Text());'以這種方式改變 –

+0

不,仍然給出錯誤。文本不能用作方法。 – Emre

相關問題