【问题标题】:how to set and get color from combobox for .NET?如何从.NET 的组合框中设置和获取颜色?
【发布时间】:2011-11-28 21:43:06
【问题描述】:

我需要从 .NET 的组合框中设置和获取颜色。到目前为止,它对我没有用。

这是组合框项目列表中的颜色列表:

AliceBlue
AntiqueWhite
Aqua
Aquamarine
Azure
Beige
Bisque
Black
BlanchedAlmond
Blue
BlueViolet
Brown
BurlyWood
CadetBlue
Chartreuse
Chocolate
Coral
CornflowerBlue
Cornslik
Crimson
Cyan
DarkBlue
DarkCyan
DarkGoldRod
DarkGray
DarkGreen
DarkKhaki
DarkMagenta
DarkOliveGreen
DarkOrange
DarkOrchid
DarkRed
DarkSalmon
DarkSeaGreen
DarkSlateBlue
DarkSlateGray
DarkTurquoise
DarkViolet
DeepPink
DeepSkyBlue
DodgerBlue
FireBrick
FloralWhite
ForestGreen
Fuchsia
Gainsboro
GhostWhite
Gold
GoldenRod
Gray
Green
GreenYellow
HoneyDew
HotPink
IndianRed
Indigo
Ivory
Khaki
Lavender
LavenderBlush
LawnGreen
LemonChiffon
LightBlue
LightCoral
LightCyan
LightGoldenRodYellow
LightGray
LightGreen
LightPink
LightSalmon
LightSeaGreen
LightSkyblue
LightSlateGray
LightSteelBlue
LightYellow
Lime
LimeGreen
Linen
Magenta
Maroon
MediumAquamarine
MediumBlue
MediumOrchid
MediumPurple
MediumSeaGreen
MediumSlateBlue
MediumSpringGreen
MediumTurquoise
MediumVioletRed
MidnightBlue
MintCream
MistyRose
Moccasin
NavajoWhite
Navy
OldLace
Olive
OliveDrab
Orange
OrangeRed
Orchid
PaleGoldenRod
PaleGreen
PaleTurquoise
PaleVioletRed
PapayaWhip
PeachPuff
Peru
Pink
Plum
PowderBlue
Purple
Red
RosyBrown
RoyalBlue
SaddleBrown
Salmon
SandyBrown
SeaGreen
SeaShell
Sienna
Silver
SkyBlue
SlateBlue
SlateGray
Snow
SpringGreen
SteelBlue
Tan
Teal
Thistle
Tomato
Transparent
Turquoise
Violet
Wheat
White
WhiteSmoke
Yellow
YellowGreen

这里是 ComboBox 的 SelectedIndexChanged 或 get 事件:

gFontColor : String;

method Maker.FontColorBoxChange(Sender: Object; e:System.EventArgs);
begin
  if (Sender as combobox).SelectedIndex =-1 then exit;

  gFOntCOlor := (Sender as combobox).Selectedvalue; 
end;

这是我设置组合框 selectedValue 的方法:

FontColorBox.SelectedValue := gFontColor;

它不起作用。我能够对字体名称做到这一点,它可以工作,但不能用于颜色。我盯着代码,似乎无法理解它或让它工作 - 可能是由于深夜感恩节派对。 :)

提前致谢,

【问题讨论】:

    标签: .net colors combobox delphi-prism selectedindexchanged


    【解决方案1】:

    要获取和设置所选项目,您必须使用SelectedItem 属性

    获取

     gFOntCOlor :=(Sender As ComboBox).SelectedItem.ToString();   
    

    设置

     FontColorBox.SelectedItem:='Peru';
    

    重要提示:如果您所期望的只是从 ComboBox 的 selectedItem 属性存储和检索数据,这可以正常工作。但是,如果您希望组合框也自动更新以反映设置为 selectedItem 的项目,那么您必须执行以下操作。

    FontColorBox.SelectedItem:='Peru';
    FontColorBox.SelectedIndex := FontComboBox.FindString('Peru');
    

    上面的代码会自动设置item并更新ComboBox以在你的winform上显示你当前的selectedItem。

    【讨论】:

    • @RRUZ 会不会也自动改变或者更新comboBox的selectedIndex属性?这就是我在设置 selectedItem 后所做的事情,并且 selectedIndex 永远不会更新或更改 selectedItem 的位置。
    • 是的,设置这个属性的值,会改变selectedIndex的值。
    • @RRUZ,即使我为 ComboBox 设置了 SelectedItem,它也没有改变我在程序中的 selectedIndex。
    • 您确定您设置的值存在于组合框中吗?
    • @RRUZ,是的,我做到了。它接受了字符串值,但没有更新组合框本身以反映更改。事实上,我什至在设置 selectedItem 后检查了 SelectedIndex 的值,它从未改变,但保持我设置的默认值 0。在我进行上述更改后,它工作得很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 1970-01-01
    相关资源
    最近更新 更多