Ваш браузер устарел, не поддерживает современные веб-стандарты и представляет угрозу Вашей безопасности. Для комфортной работы с порталом, пожалуйста, установите современыый браузер.
Портал технической поддержки

Как добавить свой пункт меню в элемент FilesViewWithPreview

С ответом

Комментарии

Комментариев: 5

  • Официальный комментарий

    Это внутренний элемент управления без каких-либо специально предсмотренных возможностей модицикации, официально подобное никак не поддерживается.

    Неофициально - в filesPanelMain меню уже нет, оно в DocsVision.BackOffice.Cards.CardDocument.FilesView filesView (внутренний internal контрол).

    Этот filesView находится внутри еще одного DocsVision.BackOffice.Cards.CardDocument.FilesViewWithPreview filesView, который уже можно получить с CardControl документа.

    И внутри первого filesView есть:
    DevExpress.XtraBars.BarManager barManager - общий менеджер кнопок и меню,
    DevExpress.XtraBars.PopupMenu popupMenuMainFile - контекстное меню для основных файлов, 
    DevExpress.XtraBars.PopupMenu popupMenuAdditionalFile - контекстное меню для дополнительных файлов.

    В теории, средствами DevExpress с ними можно сделать что угодно.

    Действия с комментариями Постоянная ссылка
  • Добрый день! Вы можете сделать так (второй вариант)

    ICustomizableControl customizable = CardControl;

    GroupControl filesPanelMain = FindControl(customizable.LayoutControl.Controls, "filesPanelMain") as GroupControl; //находим группу контролов

    if (filesPanelMain == null)

    return;

    ListView filesView = filesPanelMain.Controls.OfType<ListView>().FirstOrDefault();  //находим контрол просмотра файлов

    if (filesView == null)

    return;

    if (filesView.SelectedItems.Count == 0)

    {

    MessageBox.Show("Не выбран файл!");

    return;

    }

    foreach (ListViewItem selectedItem in filesView.SelectedItems)  //для каждого выделенного файла выполняем

    //какое-то действие

     

     

    0
    Действия с комментариями Постоянная ссылка
  • Добрый день.
    Если идти по второму варианту, то не распознается метод FindControl.

     

    0
    Действия с комментариями Постоянная ссылка
  • Прошу прощения, вот определение:

    public Control FindControl(Control.ControlCollection controls, string controlName)

    {

    foreach (Control control in controls)

    {

    if (control.Name == controlName)

    return control;

    }

    foreach (Control control in controls)

    {

    Control foundControl = FindControl(control.Controls, controlName);

    if (foundControl != null)

    return foundControl;

    }

    return null;

    }

     

    0
    Действия с комментариями Постоянная ссылка
  • Спасибо!

    0
    Действия с комментариями Постоянная ссылка

Войдите в службу, чтобы оставить комментарий.