2017-04-18 1 views
-3

다른 클래스의 함수를 사용하고 색상 대화 상자를 연 다음 색상 값을 양식에 반환하는 응용 프로그램을 만들고 있습니다. 나는 수업을 썼지 만 그것이 왜 나에게 오류가되는지 이해하지 못한다. 오류는함수에서 색상 반환

입니다. 'Editing.ChooseColor'는 void를 반환하므로 반환 키워드 뒤에 개체 표현식을 사용하면 안됩니다.

내 클래스 코드는

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

내 양식 기능과 색상을 얻을 값을 호출 할 것이다. 도와 주셔서 감사합니다.

+6

변화 수익 유형 void에서 Color로. – Mangist

+1

함수의 반환 유형을'void'에서'Color'로 변경하고 positing 전에 온라인에서 검색하는 것은 똑똑 할 것입니다. –

+0

'void'는 "내 메소드가 아무것도 반환하지 않습니다"를 의미합니다. 그러나 당신은'Color'를 리턴하려고 시도하고 있으므로 리턴 타입을 적절히 설정해야합니다. – 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

와 사용자가 대화 상자에서 확인을 클릭하는 경우에만 :

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

답변 해 주셔서 감사합니다. Return color.none을 쓸 때 None 색상이 없다는 오류가 발생합니다. 투명하게 바꿀 것 같습니까? –