2016-08-09 71 views
0

我正在嘗試學習C#。 (使用Visual Studio 2015作爲窗口應用程序項目) 我試圖通過HBar Slider設置主窗口的不透明度。如何通過滑塊設置對象的透明度

我第一次假設我將它設置爲一個int(邊欄的值),並通過該值設置窗口的不透明度。

我有問題調用窗口的不透明度的值。

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

namespace Clock 
{ 
    public partial class root : Form 
    { 
     int Window_Transparency; 
     public root() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 

     } 

     private void sbar_transp_001_Scroll(object sender, ScrollEventArgs e) 
     { 
      sbar_transp_001.Value = Window_Transparency; 
      root.equals.opacity = Windows_Transparency; 
     } 
    } 
} 

「root.equals.opacity」 給出了一個錯誤:

Error CS0119 'object.Equals(object)' is a method, which is not valid in the given context

我GOOGLE了四周,沒有發現任何相關似乎。

請原諒我的經驗,我認爲這很簡單。 如果有人可以用適當的方式指出我在C#中設置對象的值,我會很感激。 (獎勵積分不透明度,而不是一般的語法:d)

+1

這看起來像C#對我 – Alex

+0

你知道嗎。 xD這實際上是有道理的......它是......你還能幫忙嗎?或者它太不同了 – 4g0tt3nSou1

+1

C++沒有滑動條或透明度的概念。如果您想使用C++ CLI或本週所謂的任何工具,您會發現這些調用與其C#版本非常相似,並且在同一MSDN頁面上進行了記錄。 – user4581301

回答

1

記住:不透明度範圍從0到1,所以,如果你的控制從0到100,您需要:

this.Opacity = (trackBar1.Value/100); 

(假設你正在使用的TrackBar控制)。

+0

這解決了我的錯誤,沒有達到預期的效果,但我有一些調整的信心將 – 4g0tt3nSou1

+0

我相信你需要像這樣的東西:root.opacity = sbar.value/100。 Tje的邏輯是。您必須設置一個控件,使其從0到1(如果小數是可接受的)或0到100之間變化,您自己可以提供每100的分數。 –

+0

我不認爲它理解小數,因爲它將它視爲布爾/二進制(打開或關閉)。我真的很想要它,所以用戶可以指定它的透明度 – 4g0tt3nSou1

0

我相信你想:

root.Opacity = Windows_Transparency 

你實際發佈的代碼不會得到儘可能你描述的錯誤,因爲沒有Form的成員equals,也不是opacity。 C#區分大小寫,.NET對象的命名約定是所有的方法和屬性都是大寫的。

您的代碼中還存在其他一些可能的問題,但您可以解決您具體詢問我所描述的修復程序的錯誤。

爲了將來的參考,請確保您包含一個好的Minimal, Complete, and Verifiable code example。這包括100%確保您在問題中輸入的代碼是來自真實項目的直接複製/粘貼。

+0

如果在屬性中將值更改爲50%,是否不需要將項目內某處作爲腳本的一部分進行保存?如果是的話,在哪裏?理論上可以在腳本內改變這個值以等於一個變量的值(像我的int)。 – 4g0tt3nSou1

+0

@ 4g0t:_「script」_ - 不確定你在說什麼,這是C#,而不是腳本語言。無論如何,就像我上面寫的那樣,代碼中可能存在許多其他問題。但是你沒有提供一個好的[mcve],因此不可能知道問題中代碼中省略了什麼,以及實際程序中真正缺少的內容。正如我所說:我的回答只解決了您所描述的特定語法錯誤......您可能確實有其他問題需要處理,解決了這一錯誤。 –