2014-12-08 5 views
0

Предположим, у меня естьКак выбрать комбо-элемент?

combo(["A","B","C","D"]) 

Как я могу выбрать пункт B. Есть ли свойство, как selectIndex (2) или SelectItem ("B")?

Я не нашел такого имущества.

+0

Я ответил, предполагая, что комбо объявлено как я дал, но если вы ищете что-то еще (может быть, что-то с цифрами), пожалуйста, дайте мне знать, это не ясно из вопроса. –

+0

Спасибо за ответ, но это был не вопрос. Если я загружаю A, B, C в комбо, тогда по умолчанию выбирается A (видимо рядом со стрелкой). Я хочу, чтобы B был выбран, когда он становится видимым, сохраняя при этом порядок A..C – robert

ответ

0

Похоже, первая запись зашитый быть выбрана по умолчанию: https://github.com/cwi-swat/rascal/blob/master/src/org/rascalmpl/library/vis/figure/interaction/swtwidgets/Combo.java#L40

Таким образом, единственный способ, чтобы выбрать элемент, который вы хотите, чтобы создать комбо с первым пунктом тот, который вы хотите выбрать.

1

Я предполагаю, что вы есть тип данных объявлен как это:

data C = combo(list[str] items); 

и значение, как это (выстраиваться с вопросом):

rascal>c = combo(["A","B","C","D"]); 
C: combo(["A","B","C","D"]) 

Учитывая, что существует несколько способов вы можете получить второй элемент в списке. Если вы дали имя поля данных, содержащихся в combo (выше, это items), вы можете просто сказать, что это (напомним, что списки в Rascal 0-индексированные):

rascal>c.items[1]; 
str: "B" 

Если у вас нет дали ему имя, и не хотите, вы также можете сделать это, используя спичку:

rascal>if (combo(l) := c) println(l[1]); 
B 

переменная l будет связана со списком задержав- combo; эта новая переменная затем доступна внутри if. Конечно, в обоих случаях вам нужно убедиться, что список достаточно длинный, поэтому вы не получите ошибку, пытаясь прочитать второй элемент. Кроме того, можно сделать следующее, который использует вложенный список матч:

rascal>if (combo([s1,s2,s*]) := c) println(s2); 
B 

В этом случае s1 будет найден первый элемент списка, s2 ко второму, и s к чему-либо (0 или более , что и означает *). Поскольку это будет соответствовать только в том случае, если список, содержащийся в combo, имеет длину не менее 2, вам не нужно будет отдельно проверять это.

Смежные вопросы