.net 将颜色对话框结果解析为笔刷
如何解析颜色对话框的结果,以便将笔刷的颜色设置为其值 这就是我所拥有的,也是我想要做的.net 将颜色对话框结果解析为笔刷,.net,winforms,f#,.net,Winforms,F#,如何解析颜色对话框的结果,以便将笔刷的颜色设置为其值 这就是我所拥有的,也是我想要做的 let b = Brushes.Black btnColor.Click.Add(fun _ -> ColorDialog.ShowDialog() (* Here I want to set the selected color to my brush b *) |> ignore ) 我猜你这里说的是System.Windows.Forms 有关可变的更多信息,请参阅。我猜您在这里谈论
let b = Brushes.Black
btnColor.Click.Add(fun _ ->
ColorDialog.ShowDialog() (* Here I want to set the selected color to my brush b *) |> ignore )
我猜你这里说的是System.Windows.Forms
有关可变的更多信息,请参阅。我猜您在这里谈论的是System.Windows.Forms
有关可变的更多信息,请参阅。这是Wpf还是Winforms。还有,您使用的是哪种颜色的对话框?对不起,我应该提到它是windows窗体,这是Wpf或Winforms。还有,您使用的是哪种颜色的对话框?对不起,应该提到它的windows formsSeems正在工作,但当我这样做时,我没有注意到笔刷b有任何变化,知道为什么吗?:/btnColor2.Click.Addfun->b=new SolidBrushgetColorFromUserb.Color |>ignoreFSharp在默认情况下大部分是不可变的,因此不能更改b的值。如果您确实想更新b,那么应该将其标记为可变的。我将添加到代码示例中。我一直忘记。。。再次感谢!问题已解决。似乎正在工作,但当我这样做时,我没有注意到笔刷b有任何变化,知道原因吗?:/btnColor2.Click.Addfun->b=new SolidBrushgetColorFromUserb.Color |>ignoreFSharp在默认情况下大部分是不可变的,因此不能更改b的值。如果您确实想更新b,那么应该将其标记为可变的。我将添加到代码示例中。我一直忘记。。。再次感谢!问题解决了。
open System.Drawing
open System.Windows.Forms
let getColorFromUser initialColor =
use dlg = new ColorDialog(Color = initialColor)
if dlg.ShowDialog() = DialogResult.OK then
dlg.Color
else
initialColor
// example with mutation
let mutable b = new SolidBrush(Color.Black)
b <- new SolidBrush(getColorFromUser(Color.Black))