2009-08-13 6 views
-1

Есть ли способ, что мы можем вставить новый элемент управления в панели на предыдущем индексе, как мы можем сделать с коллекции списка, как это:Вставьте новый элемент управления в панели на предыдущий индекс в C#

List.Insert(2,Value); 

I я работаю с winforms C#.

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

Control c = panelThumbnail.GetNextControl(control, true); 

Это дает контроль в порядке их индексов. Есть ли другой способ решить проблему?

ответ

1

Порядок элементов управления, возвращаемых Control.GetNextControl, основан на TabIndex содержащихся в нем элементов управления. Чтобы изменить порядок возвращаемых элементов управления, измените TabIndex каждого элемента управления в соответствии с порядком, который вы хотите вернуть.

+0

Я также узнал, как изменить индекс, который после добавления дочернего элемента в панель затем вызывает SetChildIndex. Но это право, что ontrol.GetNextControl основан на TabIndex. Спасибо Alabamasucks за исправление. – qulzam

+0

Теперь проблема в том, что tabindex не является уникальным, что мешает моей логике. возможно ли сделать tabindex уникальным? – qulzam

+0

@qulzam использовать mz-tools, чтобы сделать его уникальным. – Smith

0

Вы можете добавить новые элементы управления в массив элементов управления. Затем вы можете получить доступ к элементам управления через массив в любом порядке, вместо использования .GetNextControl.