使用 "for" 循环将项目添加到 RibbonCombobox

Add Items to RibbonCombobox with "for" loop

对不起,我的英语不好。 这是我的代码: 代码 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 时我没有看到任何项目。 谢谢大家!

我不确定你在使用什么功能区控件,因为我认为它不是 winforms 的原生功能,但我的猜测是,当你说 "I didn't see any items when clicking the 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" 因为您要显示按钮的 Text 属性。