2017-04-18 3 views
-3

別のクラスの関数を使用し、色のダイアログを開いて、色の値をフォームに返すアプリケーションを作成しています。私はクラスを書いたが、なぜそれが私にエラーを与えるのか分からない。エラーはc# - 関数の色を返す

です。 'Editing.ChooseColor'はvoidを返すので、returnキーワードの後に​​オブジェクト式を続けてはいけません。

私のクラスコードが

 public void ChooseColor() 
    { 
     ColorDialog ColorDialog = new ColorDialog(); 
     ColorDialog.ShowDialog(); 
     System.Drawing.Color Color = ColorDialog.Color; 
     return Color; 
    } 

は私のフォームは機能や色を取得した値を呼び出しますです。手伝ってくれてありがとう。

+6

変更あなたの戻り値の型ボイドからカラーへ – Mangist

+1

関数の戻り値の型を 'void'から' Color'に変更し、ポジショニングがスマートになる前にオンラインで検索します。 –

+0

'void'は"私のメソッドは何も返しません "を意味します。しかし、あなたは 'Color'を返そうとしているので、メソッドreturn-typeを適切に設定する必要があります。 – HimBromBeere

答えて

0

あなたがColorを返すことがあります。

あなたの関数が色を返すようにする必要があり
// static: you don't want "this" in the method 
public static Color ChooseColor() { 
    // Do not forget to Dispose IDisposable 
    using (ColorDialog ColorDialog = new ColorDialog()) { 
    if (ColorDialog.ShowDialog() == DialogResult.OK) 
     return ColorDialog.Color; // user has selected color and clicked "OK" 
    else 
     // or other stub color (Color is struct, so we can't return null) 
     return Color.Transparent; 
    } 
} 
0

voidは、メソッドが何も返さないことをコンパイラに伝えます。だから、何かを返そうとすると、コンパイラエラーが発生します。

は、あなたが戻っているタイプのコンパイラに教える:

public System.Drawing.Color ChooseColor() 
{ 
    //... 
} 
あなたはそれが色であるべき色を返したい場合、これは、公共の voidある
+0

ありがとうございます。 Colorにvoidを変更しましたが、System.Drawing.Colorを記述したり、System.Dravingをクラスに使用するのを忘れてしまいました。 –

0
public void ChooseColor() 
{ 
    ColorDialog ColorDialog = new ColorDialog(); 
    ColorDialog.ShowDialog(); 
    System.Drawing.Color Color = ColorDialog.Color; 
    return Color; 
} 

public System.Drawing.Color ChooseColor() 
{ 
    ColorDialog ColorDialog = new ColorDialog(); 
    ColorDialog.ShowDialog(); 
    System.Drawing.Color Color = ColorDialog.Color; 
    return Color; 
} 
0

と、ユーザーは、ダイアログで[OK]をクリックした場合にのみ:

public Color ChooseColor() 
{ 
    ColorDialog ColorDialog = new ColorDialog(); 
    if(ColorDialog.ShowDialog()==DialogResult.OK) 
    { 
     return ColorDialog.Color; 
    } 
    return Color.None; 
} 
+0

ありがとうございました。 Return color.noneを書くと、Noneの色がないというエラーが返されます。おそらくそれを透明に変更しますか? –