2015-05-20 2 views
0

Я показываю поля в форме настройки. Я выбираю Excel2007 как CustomizationFormStyle, но хотел бы показать только Filter. Я хочу Column, и Data Площадь быть невидимой.
Как я могу управлять этим?Devexpress pivotgrid Настройка CustomizationFormStyle

pivotGridControl1.OptionsCustomization.CustomizationFormStyle = DevExpress.XtraPivotGrid.Customization.CustomizationFormStyle.Excel2007; 
pivotGridControl1.OptionsCustomization.CustomizationFormLayout = CustomizationFormLayout.BottomPanelOnly1by4; 
pivotGridControl1.OptionsCustomization.CustomizationFormAllowedLayouts = CustomizationFormAllowedLayouts.BottomPanelOnly1by4; 

ответ

0

Вы должны использовать PivotGridControl.ShowingCustomizationForm событие и PivotGridControl.ShowCustomizationForm событие. В PivotGridControl.ShowingCustomizationForm события вам нужно получить CustomizationForm объект от CustomizationFormShowingEventArgs.CustomizationForm и использовать этот объект в PivotGridControl.ShowCustomizationForm мероприятие для настройки формы. Чтобы получить площадь фильтра и другие объекты области, вам необходимо использовать свойство CustomizationForm.BottomPanel и его методы GetAreaLabel, GetAreaIcon и GetAreaList.
Вот пример:

private void pivotGridControl1_ShowingCustomizationForm(object sender, CustomizationFormShowingEventArgs e) 
{ 
    _customizationForm = e.CustomizationForm as CustomizationForm; 
} 

private void pivotGridControl1_ShowCustomizationForm(object sender, EventArgs e) 
{    
    var bottomPanel = _customizationForm.BottomPanel as ExcelCustomizationFormBottomPanel; 

    var areas = new PivotArea[] { PivotArea.ColumnArea, PivotArea.RowArea, PivotArea.DataArea }; 

    foreach (var area in areas) 
    { 
     bottomPanel.GetAreaLabel(area).Hide(); 
     bottomPanel.GetAreaIcon(area).Hide(); 
     bottomPanel.GetAreaList(area).Hide(); 
    } 

    var filterAreaList = bottomPanel.GetAreaList(PivotArea.FilterArea); 
    var dataAreaList = bottomPanel.GetAreaList(PivotArea.DataArea); 
    filterAreaList.Height = dataAreaList.Bottom - filterAreaList.Top; 
} 
+0

Спасибо, я решил эту проблему, ваш ответ @ nempobu4 – user3310933