C#显示基于Int编号的ComboBox

时间:2013-08-07 12:00:57

标签: c# dynamic combobox

首先是一些背景信息。我正在玩D& D的在线活动,正在玩德鲁伊。我已经为所有被召唤的动物建立了一个动物追踪器,但是现在我想通过建立一个角色追踪器,为我自己的角色Duncan以及我的强大的Eddy(可怕的狼动物)来加快速度。同伴)。

我现在正在做的事情是跟踪我的法术。在D& D中,法术和法术等级基于角色和奖励属性的等级。

对于德鲁伊:http://www.dandwiki.com/wiki/SRD:Druid 对于奖金:http://www.dandwiki.com/wiki/SRD:Ability_Scores

向下滚动“能力”修改器,所以智慧越多,法术就越多。

现在,我正在考虑制作标签控制页面,用于从等级0到等级9的法术,然后显示组合框以选择你想要准备的法术。

当然,我正计划隐藏绝大多数的组合框,并且只用简单的If语句取消隐藏它们,所以如果智慧足够高,取消隐藏x数量的组合框......但这意味着要创建大量的IF语句

有没有办法说,如果智慧足够高达10个法术,显示10个组合框,如果智慧足够只有5个,只显示5个?

或者其他人对如何做到这一点有一个很好的选择吗?我愿意接受建议。

1 个答案:

答案 0 :(得分:1)

注意:,因为您没有指定语言我将使用C#和Windows Forms。

当然,我不确定你如何确定智慧水平,但是我们说它存储在一个名为_wisdomLevel的变量中:

private int _wisdomLevel;

现在你需要一个Dictionary来处理:

private Dictionary<int, int> _wisdomLevelSpells = new Dictionary<int, int>
    {
        { 1, 5 },
        { 2, 5 },
        { 3, 10 },
    }

现在,我放在那里的值是随机的,它们是你可以得到的想法。现在要显示那些组合框我可能会做这样的事情:

for (int i = 0; i < _wisdomLevelSpells[_wisdomLevel]; i++)
{
    this.Controls.Add(new ComboBox()
        {
            DataSource = ...,
            ValueMember = ...,
            DisplayMember = ...,
        }
}