2013-08-07 27 views
0

首先提供一些背景信息。我正在玩D & D的在线广告系列并正在玩德鲁伊。我已经为我召唤的所有动物建立了一个动物追踪器,但现在我想通过建立一个角色追踪器,为我自己的角色邓肯,以及我的强大秃鹰(可怕的狼的动物)伴侣)。C#显示组合框基于内部编号

我现在正在努力的事情是跟踪我的法术。在D & D法术和法术等级基于角色和奖励统计的等级。

德鲁依:http://www.dandwiki.com/wiki/SRD:Druid 对于Bonusses:http://www.dandwiki.com/wiki/SRD:Ability_Scores

向下滚动的能力,因此这种更多的智慧,更多的法术。

现在,我正在考虑制作选项卡控制的页面,其范围从level0到level9,然后显示ComboBoxes来选择要准备的咒语。

从本质上讲,我打算隐藏绝大多数组合框,并且只用简单的If语句隐藏它们,所以如果智慧够高,取消隐藏x个组合框......但这意味着创建IF声明。

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

还有其他人有一个很好的另一种想法如何做到这一点?我很乐意提供建议。

+1

刚刚发布您的代码和问题在里面,你说域名和问题 –

+1

简单的答案是肯定的,正确的答案取决于你使用的是什么,是什么控制你对你的形式......什么平台......名单几乎是无尽的 – Sayse

回答

1

注意:因为您没有指定语言我将使用C#和Windows窗体的平台。

当然,我不知道你是如何确定的智慧水平,但让我们说这是存储在一个名为_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 = ..., 
     } 
} 
+0

优秀的,我会给这个镜头,看起来像我在找什么。事实上,C#与Windows窗体。 –