2016-08-09 4 views
0

Ich versuche C# zu lernen. (Arbeiten mit Visual Studio 2015, als Window Application Project) Ich versuche, die Opazität des Hauptfensters über einen HBar Slider einzustellen.So legen Sie die Transparenz eines Objekts über einen Schieberegler fest

Ich nahm zuerst an, ich würde es als int (der Wert der Seitenleiste) festlegen und die Deckkraft des Fensters über diesen Wert festlegen.

Ich habe Probleme, den Wert der Deckkraft für das Fenster aufzurufen.

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" Gibt einen Fehler:

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

Ich googeln um und fand nichts, was relevant schien.

Bitte verzeihen Sie meine Unerfahrenheit zu dem, was ich annehme, ist ganz einfach. Wenn jemand mich in der richtigen Weise auf Werte von Objekten in C# setzen könnte, wäre ich dankbar. (Bonuspunkte für die Opazität, anstatt die allgemeine Syntax: D)

+1

Das sieht aus wie C# zu mir – Alex

+0

Sie wissen was. xD das würde eigentlich Sinn machen .... Es ist ... Kannst du noch helfen? oder ist es zu unterschiedlich – 4g0tt3nSou1

+1

C++ hat kein Konzept von Schieberegler oder Transparenz. Wenn Sie in C++ - CLI oder wie auch immer es in dieser Woche heißt, arbeiten möchten, werden Sie feststellen, dass die Aufrufe weitgehend identisch mit ihren C# -Versionen sind und auf derselben MSDN-Seite dokumentiert sind. – user4581301

Antwort

1

Denken Sie daran: Opazität von 0 bis 1 reicht, so, wenn Ihre Steuerung von 0 bis 100 variiert, benötigen Sie:

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

(nehme an, Sie TrackBar Steuerung verwenden).

+0

Dies löste meine Fehler, tat nicht den gewünschten Effekt, aber ich bin zuversichtlich, mit einigen Optimierungen wird es – 4g0tt3nSou1

+0

Ich glaube, Sie brauchen etwas wie: root.opacity = sbar.value/100. Tje Logik ist das. Sie müssen ein Steuerelement festlegen, um von 0 bis 1 zu variieren (wenn Dezimalstellen zulässig sind) oder von 0 bis 100, wobei Sie die Division für 100 selbst festlegen. –

+0

Ich glaube nicht, dass es die Dezimalzahl versteht, da sie es als Boolesche/binäre (on oder off) behandelt. Ich möchte es wirklich, so kann ein Benutzer seine Transparenz angeben – 4g0tt3nSou1

0

ich Sie glauben wollen:

root.Opacity = Windows_Transparency 

Der Code, den Sie tatsächlich geschrieben würde, soweit die Fehler nicht erhalten Sie beschreiben, weil es keine ist Mitglied von Form genannt equals, noch opacity. Bei C# wird die Groß-/Kleinschreibung beachtet, und bei den Konventionen für .NET-Objekte wird festgelegt, dass alle Methoden und Eigenschaften groß geschrieben werden.

Es gibt eine Reihe anderer wahrscheinlicher Probleme in Ihrem Code, aber Sie können den Fehler beheben, über den Sie speziell mit dem von mir beschriebenen Fix nachfragen.

Für zukünftige Referenz stellen Sie bitte sicher, dass Sie eine gute Minimal, Complete, and Verifiable code example enthalten. Dazu gehört, 100% sicher zu stellen, dass der Code, den Sie in Ihre Frage eingeben, ein reines Kopieren/Einfügen aus einem realen Projekt ist.

+0

Wenn der Wert in den Eigenschaften auf 50% geändert wird, muss er dann nicht irgendwo im Projekt als Teil eines Skripts gespeichert werden? wenn ja, wo?Man könnte theoretisch diesen Wert im Skript so ändern, dass er dem Wert einer Variablen entspricht (wie mein int). – 4g0tt3nSou1

+0

@ 4g0t: _ "Skript" _ - nicht sicher, wovon Sie sprechen, das ist C#, keine Skriptsprache. Auf jeden Fall, wie ich oben geschrieben habe, gibt es wahrscheinlich viele andere Probleme im Code. Aber Sie haben kein gutes [mcve] geliefert, also ist es unmöglich zu wissen, was im Code in der Frage einfach weggelassen wurde und was wirklich im eigentlichen Programm fehlt. Wie gesagt: Meine Antwort adressiert _only_ den spezifischen Syntaxfehler, den Sie beschrieben haben ... Sie könnten tatsächlich andere Probleme haben, mit denen Sie auch umgehen müssen, nachdem Sie diesen einen Fehler behoben haben. –

Verwandte Themen