如何从课堂上获得确定的按钮

本文关键字:按钮 课堂 | 更新日期: 2023-09-27 18:29:22

这不是长话短说!!只是它看起来很长;)

在我的应用程序中,我有user access,这意味着访问与其用户访问范围相关的按钮。

在winform层中:我有一个表单,它在分区的checkedListboxes中显示所有已确定按钮的名称。我不想手动填写表格。我想通过代码创建checkedListboxes。为了获得他们商品的文本,我有以下计划:

clssMenu_Item:我可以保存此类中一个按钮的nametext属性。

public class clssMenu_Item
{
    public string name;
    public string text;
}

clssMenuList:它给了我2D通用List<clssMenu_Item>。一个窗体中的所有按钮都将位于此类的对象中。

public class clssMenu_List
{
    public clssMenu_List ()
    {
           // I dont know how fill private variables     
    }
    #region private variables
        private List<clssMenu_Item> _main ; // buttons in main form
        private List<clssMenu_Item> _accountancy; //buttons in accountancy form
        private List<clssMenu_Item> _management; //buttons in management form
    #endregion 
    #region public properties
        public List<clssMenu_Item> main
        { get { return _main; } }
        public List<clssMenu_Item> accountancy
        { get { return _accountancy; } }
        public List<clssMenu_Item> management
        { get { return _management; } }
    #endregion
}

每种形式中的按钮在其CCD_ 5中具有共同字符。例如,Main表单中所有已确定的按钮都以"Mbtn"开头,因此表单之间没有任何相同的按钮"Name"
现在我不知道如何在clssMenu_List中填充私有变量。然后我可以在我的外墙层中使用它。

谢谢你的关注,我的朋友!!请帮我解决

如何从课堂上获得确定的按钮

我会创建一个单独的助手类,从表单中提取所有按钮。

public static class FormHelper
{
    public static Button[] GetButtonsFromForm(Form form)
    {
        // ...
    }
}

我会创建属性而不是字段:

public class clssMenu_Item
{
    public string Name {get;set;}
    public string Text {get;set;}
}

创建menu_items:的方法

public IEnumerable<clssMenu_Item> GetMenuItemsFromForm(Form form)
{
   // convert the buttons to menu_items
   return from button in FormHelper.GetButtonsFromForm(form);
          select new clssMenu_Item { Name = button.Name, Text = button.Text };
}

接下来,我会将所有按钮添加到右侧列表中。

public void Fill()
{
    clssMenu_List lst = new clssMenu_List();
    clssMenu_List.main.AddRange(GetMenuItemsFromForm(mainForm));
    clssMenu_List.accountancy.AddRange(GetMenuItemsFromForm(accountancyForm));
    clssMenu_List.management.AddRange(GetMenuItemsFromForm(managementForm));
}

别忘了在你的课堂上创建列表:

    private List<clssMenu_Item> _main = new List<classMenu_Item>(); // buttons in main form
    private List<clssMenu_Item> _accountancy = new List<classMenu_Item>(); //buttons in accountancy form
    private List<clssMenu_Item> _management = new List<classMenu_Item>(); //buttons in management form

个人:

我会把它们存储在字典里,因为你可以按名字访问它们。我不会创建List类型的属性。我宁愿创建Add/Remove方法。