2013-08-07 2 views
0

Сначала немного информации о предыстории. Я играю в онлайн-кампанию D & D, и я играю друида. Я уже создаю звериного трекера для всех моих вызываемых животных, но теперь я хочу немного ускорить работу, создав трекер для персонажей, для моего собственного персонажа, Дункана, а также для моего Могучего Эдди (животное-ужасное волк компаньон).C# Отображать ComboBox на основе номера Int

Вещь, над которой я сейчас работаю, отслеживает мои заклинания. В D & D заклинания и уровни заклинаний основаны на уровне персонажа и бонусной статистики.

Для друидов: http://www.dandwiki.com/wiki/SRD:Druid Для Bonusses: http://www.dandwiki.com/wiki/SRD:Ability_Scores

прокрутки вниз для модификаторов способности, так что больше мудрости, тем больше заклинаний.

Теперь я собираюсь сделать страницы с контролируемым табуляцией, для заклинаний от уровня0 до уровня9, а затем отображать ComboBoxes, чтобы выбрать заклинания (ы), которые вы хотите подготовить.

В основном, я планировал скрыть подавляющее большинство списков combobox и только показывать их простым утверждением If, поэтому, если мудрость достаточно высока, покажите количество комбо-блоков ... но это будет означать создание нагрузок IF заявления.

Есть ли способ сказать, ЕСЛИ Мудрость достаточно высока для 10 заклинаний, отображать 10 комбинированных ящиков, если мудрость достаточно высока только для 5, отображается только 5?

Или у кого-нибудь есть хорошая альтернативная идея о том, как это сделать? Я открыт для предложений.

+1

просто разместить код и проблема в нем, вы заявили домена и проблема –

+1

Простой ответ да, правильный ответ зависит от того, что вы используете, какие контролирует вас на вашей форме ... какая платформа ... список бесконечен почти – Sayse

ответ

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 = ..., 
     } 
} 
+0

Отлично, я дам этот снимок, похоже, что я ищу. И действительно, C# с Windows Forms. –