DevExpress 电子表格控件 - 在代码中隐藏/显示 Group-By 按钮和模仿行为
DevExpress Spreadsheet Control - Hide / Show Group-By Buttons and Mimic Behaviour in Code
我的 winforms 应用程序 (v 15.1) 中有一个 DevExpress Spreadsheet 控件。我想隐藏 Headers 列("A"、"B"、"C" 等)横跨我的 sheet 和行 headers 沿左边缘(“1”、“2”、“3”等)。
我还想为我的数据添加小计。这样做会添加 "Group-By" 按钮(“1”、“2”、“3”),用于展开和折叠小计输入数据。这是我的意思的一个例子:
但是,当我隐藏列 headers 时,group-by 按钮也消失了,因此我无法按级别展开或折叠数据:
我可以看到我可以通过 worksheet.Range[rangeName].GroupRows(true);
或 worksheet.Range[rangeName].UnGroupRows(true);
调用在代码中 expand/collapse 分组(我仍在尝试寻找如何展开或折叠到指定级别 -类似 GroupRows(true, 2);
的东西会下降到 2 级)。问题是,我仍然在网格左侧有 "tree" 结构,即使列和行 headers 已关闭。
我想弄清楚的是:
- 理想情况下如何隐藏列 headers 但 显示 "Group-By" 按钮
- 或
- 如果无法做到这一点,则隐藏列 headers 和保留在网格左边缘的 "Group-By Tree",然后添加标记为“1”、“2”和“的按钮3" 到单击时进行各种级别分组的表单。
您可以使用 CustomDrawColumnHeader
事件以可视方式隐藏列 headers。
这是示例:
private void spreadsheetControl1_CustomDrawColumnHeader(object sender, CustomDrawColumnHeaderEventArgs e)
{
var color = CommonSkins.GetSkin(UserLookAndFeel.Default).Colors.GetColor(CommonColors.Control);
e.Graphics.FillRectangle(new SolidBrush(color), e.Bounds);
e.Handled = true;
}
我的 winforms 应用程序 (v 15.1) 中有一个 DevExpress Spreadsheet 控件。我想隐藏 Headers 列("A"、"B"、"C" 等)横跨我的 sheet 和行 headers 沿左边缘(“1”、“2”、“3”等)。
我还想为我的数据添加小计。这样做会添加 "Group-By" 按钮(“1”、“2”、“3”),用于展开和折叠小计输入数据。这是我的意思的一个例子:
但是,当我隐藏列 headers 时,group-by 按钮也消失了,因此我无法按级别展开或折叠数据:
我可以看到我可以通过 worksheet.Range[rangeName].GroupRows(true);
或 worksheet.Range[rangeName].UnGroupRows(true);
调用在代码中 expand/collapse 分组(我仍在尝试寻找如何展开或折叠到指定级别 -类似 GroupRows(true, 2);
的东西会下降到 2 级)。问题是,我仍然在网格左侧有 "tree" 结构,即使列和行 headers 已关闭。
我想弄清楚的是:
- 理想情况下如何隐藏列 headers 但 显示 "Group-By" 按钮
- 或
- 如果无法做到这一点,则隐藏列 headers 和保留在网格左边缘的 "Group-By Tree",然后添加标记为“1”、“2”和“的按钮3" 到单击时进行各种级别分组的表单。
您可以使用 CustomDrawColumnHeader
事件以可视方式隐藏列 headers。
这是示例:
private void spreadsheetControl1_CustomDrawColumnHeader(object sender, CustomDrawColumnHeaderEventArgs e)
{
var color = CommonSkins.GetSkin(UserLookAndFeel.Default).Colors.GetColor(CommonColors.Control);
e.Graphics.FillRectangle(new SolidBrush(color), e.Bounds);
e.Handled = true;
}