如何创建包含多个内容的menustrip?

时间:2011-12-23 08:49:29

标签: c# winforms menu custom-controls

我想创建一个自定义的menustrip(以便它可以更改菜单内容)。 我的想法是我设置了三个属性:v1,v2,lang1。 v1是内容1的menustrip文本,v2是内容2.lang是确定内容的整数。 如下:

public string settext1 {get {return text1;} set {text1=value}; }
public int Lang {get {return lang1;} set {lang1=value};if (lang==1)menustrip.text=text1;if(lang==2)menustrip.text=text2; }

2 个答案:

答案 0 :(得分:1)

如何不创建自定义的,而是使用Tag property存储您自己的对象?

Tag属性的类型为object,并且对所有Control派生类都是通用的。你可以,例如创建自己的类,然后将其添加到属性中。

public class MyTagInfo
{
    public string V1 { get; set; }
    public string V2 { get; set; }
    public int Lang { get; set; }
}

然后像这样使用它:

menustrip.Tag = new MyTagInfo { V1 = "...", V2 = "...", Lang = 1 };

答案 1 :(得分:0)

您可以在menustrip中使用单独的控件,每个Lang值一个。然后,只要Lang发生更改,您就可以重新设置控件的EnabledVisible属性。

您可以/应该在Lang setter中执行此操作,因此您可以确保每次Lang更改都会适当地配置您的GUI。