使用“for”循环向RibbonCombobox添加项目

时间:2018-04-10 16:19:49

标签: c# winforms ribbon ribbon-control

我很抱歉我不擅长英语。 这是我的代码: 代码winform

for (int i = 10; i < 70; i++)
            {
                RibbonButton rbtn = new RibbonButton();
                rbtn.Text = i.ToString();
                ribbonComboBox2.DropDownItems.Add(rbtn);
            }

            //ribbonComboBox2.SelectedItem = ribbonComboBox2.DropDownItems[0];
            //-----------Tạo danh sách font chữ
            System.Drawing.Text.InstalledFontCollection fonts = new System.Drawing.Text.InstalledFontCollection();
            foreach (FontFamily family in fonts.Families)
            {
                RibbonButton rbtn = new RibbonButton();
                rbtn.Text = family.Name.ToString();
                ribbonComboBox1.DropDownItems.Add(rbtn);
            }

单击RibbonCombobox时,我没有看到任何项目。 谢谢大家!

1 个答案:

答案 0 :(得分:0)

我不确定你用于Ribbon控件的是什么,因为我不认为它是winforms的原生,但我的猜测是当你说“我点击RibbonCombobox时没有看到任何项目”。你看到组合框有项目,但它们显示为空白。这很可能是由于组合框没有设置DisplayMember属性。

for (int i = 10; i < 70; i++)
{
    Button rbtn = new Button();
    rbtn.Text = i.ToString();
    ribbonComboBox2.Items.Add(rbtn);
    ribbonComboBox2.DisplayMember = "Text";
}


System.Drawing.Text.InstalledFontCollection fonts = new System.Drawing.Text.InstalledFontCollection();
foreach (FontFamily family in fonts.Families)
{
    Button rbtn = new Button();
    rbtn.Text = family.Name.ToString();
    ribbonComboBox1.Items.Add(rbtn);
    ribbonComboBox1.DisplayMember = "Text";
}

要使用DisplayMember,请将其设置为您希望在组合框中显示的属性的名称。该属性的名称应来自组合框中的项目。我使用ButtonComboBox,因为我不知道你在使用什么,但我愿意打赌它会对你有用。 DisplayMember设置为“文字”,因为您想要显示按钮的Text属性。