Как переместить два столбца Devex gridview вместе? - PullRequest
0 голосов
/ 17 августа 2011

Я использую devex gridview с c #, я хочу, чтобы, когда я перетаскивал столбец, чтобы изменить его порядок, другой столбец должен был быть перемещен следующим или перед моим перемещенным столбцом, я использовал событие «вверх» и событие изменения положения столбца, я получаю стек исключение переполнения может использоваться:

 int index1 = gridView1.Columns["mail2"].VisibleIndex;
m_Mail1selection.CheckMarkColumn.VisibleIndex = index1;
int index2 = gridView1.Columns["mail1"].VisibleIndex;
m_Mail2selection.CheckMarkColumn.VisibleIndex = index2;

любой знает, как этого добиться, первые столбцы - для почтового адреса, а вторые - Checkedit для отметки, будет ли отправлено письмо или нет, и такая же вещь для mail2

спасибо заранее за любую помощь

привет

1 Ответ

1 голос
/ 18 августа 2011

Используйте событие ColumnPositionChanged, однако вам необходимо убедиться, что вы используете условия.Ваша проблема в том, что вы устанавливаете VisibleIndex независимо от того, нужно вам это или нет, так как вы продолжаете изменять положение столбца, в котором событие продолжает срабатывать, и, следовательно, помещает событие в вечный цикл (который представляет собой StackOverflow)

Попробуйте что-то вроде этого

    private void gridView1_ColumnPositionChanged(object sender, EventArgs e)
    {
        if ((colMail1Check.VisibleIndex - colMail1.VisibleIndex) != 1)
        {
            colMail1Check.VisibleIndex = colMail1.VisibleIndex + 1;
        }
        if ((colMail2Check.VisibleIndex - colMail2.VisibleIndex) != 1)
        {
            colMail2Check.VisibleIndex = colMail2.VisibleIndex + 1;
        }
    }

Что это будет делать, это проверять, находится ли столбец Проверка рядом со своим «основным» столбцом, и если нет, настроить VisibleIndex, чтобы он находился рядом с основным столбцом.Это также будет обрабатываться, если кто-то перетаскивает столбец между двумя столбцами (т. Е. Вы перетаскиваете столбец Mail2 между столбцами Mail1 и Mail1Check, поскольку Mail2Check будет перемещен рядом с Mail2, а Mail1Check снова будет перемещен рядом с Mail1, обеспечиваяэто всегда рядом с колонкой.

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...