Как я могу создать Menustrip с мульти-контентом? - PullRequest
0 голосов
/ 23 декабря 2011

Я хочу создать пользовательскую панель меню (чтобы она могла изменять содержимое меню).Моя идея состоит в том, что я установил три свойства: v1, v2, lang1.v1 - текстовое меню для контента 1, 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 ]

1 голос
/ 23 декабря 2011

Как насчет того, чтобы не создавать собственный объект, а использовать свойство Tag для хранения собственного объекта?

Свойство 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 };
0 голосов
/ 23 декабря 2011

Вы можете иметь отдельные элементы управления в меню, по одному для каждого значения Lang.Затем, когда Lang изменяется, вы можете переустанавливать свойство Enabled или Visible элементов управления.

Вы можете / должны сделать это в установщике Lang, так что вы можете быть уверены,что каждое изменение Lang будет правильно настраивать ваш графический интерфейс.

...