我正在创建一个应用程序,它将使用另一个类的函数,打开颜色对话框,然后将颜色值返回到表单。我写过课,但我不明白为什么它会给我一个错误。错误是
由于'Editing.ChooseColor'返回void,因此返回关键字后面不能包含对象表达式。
我的班级代码是
public void ChooseColor()
{
ColorDialog ColorDialog = new ColorDialog();
ColorDialog.ShowDialog();
System.Drawing.Color Color = ColorDialog.Color;
return Color;
}
我的表单将调用该函数并获取颜色值。谢谢你的帮助。
答案 0 :(得分:0)
void
告诉编译器该方法不返回任何内容。因此,尝试返回某些内容会导致编译器错误。
告诉编译器您要返回的类型:
public System.Drawing.Color ChooseColor()
{
//...
}
答案 1 :(得分:0)
public void ChooseColor()
{
ColorDialog ColorDialog = new ColorDialog();
ColorDialog.ShowDialog();
System.Drawing.Color Color = ColorDialog.Color;
return Color;
}
这是公开void
,如果您希望它返回一种颜色,它应该是一种颜色。
public System.Drawing.Color ChooseColor()
{
ColorDialog ColorDialog = new ColorDialog();
ColorDialog.ShowDialog();
System.Drawing.Color Color = ColorDialog.Color;
return Color;
}
答案 2 :(得分: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;
}
}
答案 3 :(得分:0)
只有当用户在对话框中单击“确定”时,才需要使函数返回颜色:
public Color ChooseColor()
{
ColorDialog ColorDialog = new ColorDialog();
if(ColorDialog.ShowDialog()==DialogResult.OK)
{
return ColorDialog.Color;
}
return Color.None;
}