我有ToolStripMenu
个ToolStripDropDownButtons
。那些dropDownButtons自己有ToolStripMenuItems
(子按钮)。我需要设置可见性权限,问题是用户可能只拥有某些tsMenuItems的权限,或者可能会忽略某个dropDownButton中的所有项目,然后整个ToolStripDropDownButtons
应设置为Visible = false
可见度的权利在公共Enum
中设置,如下所示:
[EnumValue("Clients")]
Clients = 1,
[EnumValue("Materials")]
Materials = 2,
[EnumValue("Uppers")]
依旧......
我开始编写一个方法,但它所基于的逻辑是每个ToolStripItem
的命名就像EnumValue
一样。所以我需要(如果可能的话)以某种方式做到这一点:
private void SetToolStripDropDownVisibility(ToolStripDropDown mainBtn, params ToolStripItem[] item)
{
foreach (ToolStripItem tempItem in item)
{
EnumValue eValue = tempItem.Text;
if (Helpers.GrantActivity(ControlEnum.eValue, ActionEnum.ShowMenuItem))
}
}
tempItem.Text
作为我在此处尝试的EnumValue
,但显然需要一些演员或其他 - EnumValue eValue = tempItem.Text;
并使用正确的参数调用辅助方法 - { {1}}如果我可以将ControlEnum.eValue
用作tempItem.Text
,我认为仍然依赖于此。答案 0 :(得分:1)
我有字符串(来自tempItem.Text)我需要将它用作 EnumValue (来自评论)
您可以使用Enum.Parse或Enum.TryParse<TEnum>
方法,例如:
EnumValue enumValue;
if (Enum.TryParse<EnumValue>("Materials", out enumValue))
{
//parsing successful
}
else
{
//parisng failed.
}
输出:
enumValue = Materials
如果您的枚举定义为:
public enum EnumValue
{
Clients = 1,
Materials = 2,
}
答案 1 :(得分:0)
试试这个,我在几个月前做过的项目中有类似的东西,它对我有用。
EnumValue enm = (EnumValue)Enum.Parse(typeof(EnumValue), tempItem.Text);