エクストラグリッドを使用しています。デフォルトの popupmenu columnmenu GridViewColumnMenu を変更し、ColorPieker と FontEditor を追加して、列のセルの色と列のフォントを変更したいと思います。2 つのエディターが失敗した標準メニュー列に追加します。より正確には、メニュー項目が追加されましたが、それらをクリックしても何も起こりません。また、エディターを使用してすべての標準メニュー項目をメニューに追加し、すべてを barmanager に表示しようとしました。この場合、色とフォントの選択のエディターとして機能しますが、標準のメニュー (GridViewColumnMenu) 項目は機能しません
if (e.MenuType == DevExpress.XtraGrid.Views.Grid.GridMenuType.Column)
{
DevExpress.XtraGrid.Menu.GridViewColumnMenu menu = e.Menu as GridViewColumnMenu;
// menu.Items.Clear();//Erasing the default menu items
if (menu.Column != null)
{
ClickedColumn = "";
ClickedColumn = menu.Column.FieldName;
DXPopupMenu dxPopupMenu = new DXPopupMenu();
dxPopupMenu.Items.Add(new DXEditMenuItem("Color",
new RepositoryItemColorEdit(),
new EventHandler(OnColumnsColorChanged),
null, null, 100, 0));
dxPopupMenu.Items.Add(new DXEditMenuItem("Font",
new RepositoryItemFontEdit(),
new EventHandler(OnColumnsFontChanged),
null, null, 100, 0));
DXPopupMenu sub = new DXPopupMenu();
sub.Caption = "FixedStyle";
sub.Items.Add(CreateCheckItem("Fixed None", menu.Column, FixedStyle.None, null));
sub.Items.Add(CreateCheckItem("Fixed Left", menu.Column, FixedStyle.Left, null));
sub.Items.Add(CreateCheckItem("Fixed Right", menu.Column, FixedStyle.Right, null));
dxPopupMenu.Items.Add(sub);
/*
DXPopupMenu dx = new DXPopupMenu();
dx.Caption = "dx";
foreach (DXMenuItem item in menu.Items)
{
dx.Items.Add(item);
}
//dxPopupMenu.Items.Add(dx);
*/
menu.Items.Clear();
Point p = e.Point;
// p.X += 210;
dxPopupMenu.MenuViewType = MenuViewType.Menu;
((IDXDropDownControl)dxPopupMenu).Show(barManager1, this, p);
メニューとメニュー エディター barmanager を同時に表示しようとしましたが、すべて動作します。しかし、メニューが重なってしまうこともあります。