此代码使用win form的代码。所以我想将它与DevExpress一起使用,问题是我不知道DevExpress中哪个工具可以使用而不是代码。我有一个类如下:谢谢
using System.Drawing;
using System;
namespace Extender
{
public class MenuItem : System.Windows.Forms.ToolStripMenuItem
{
private string _Command;
public string Command
{
get
{
return _Command;
}
set
{
_Command = value;
}
}
private object _Argument;
public object Argument
{
get
{
return _Argument;
}
set
{
_Argument = value;
}
}
private Int16 _ModuleID;
public Int16 ModuleID
{
get
{
return _ModuleID;
}
set
{
_ModuleID = value;
}
}
public MenuItem()
{
}
public MenuItem(string text)
{
this.Text = text;
}
public MenuItem(string text, EventHandler onclick) :
this(text)
{
this.Click += onclick;
}
}
}
以下代码是我使用winform
的实体框架从数据库创建菜单的方法private void LoadMenus(ToolStripItemCollection Menu,string ParentName)
{
using (var ctx = new CambbusEntities())
{
foreach (var obj in ctx.view_ObjectDetails.Where(a => a.ObjectType == "MENU" && a.ParentName==ParentName &&a.LanguageID == Cambbus.Properties.Settings.Default.LanguageID ).OrderBy(a=>a.SortOrder))
{
string mText = obj.ObjectText;
string nName = obj.ObjectName;
if (mText == "-")
continue;
Extender.MenuItem m = new Extender.MenuItem(mText);
m.Alignment = ToolStripItemAlignment.Left;
//m.Text = obj.ObjectText;
//m.Name = obj.ParentName;
m.ModuleID = (Int16)obj.ModuleID;
m.Command = obj.Command;
m.Argument = obj.Argument;
m.Image = App.GetImageByEntity((obj.ImageTag)+"");
if (m.Command!=""){
m.Click += DynamicMenuClick;
}
bool Is4Perm = obj.ModuleID > 0;
if(Is4Perm){
m.Enabled = CurrentUser.CanViewModule((Int16)obj.ModuleID);
}
Int16 shortcutNum = ((Int16)(obj.ShortcutNum));
if (shortcutNum != 0)
{
m.ShortcutKeys = ((System.Windows.Forms.Keys)(Keys.Control)) | ((System.Windows.Forms.Keys)(shortcutNum));
}
Menu.Add(m);
LoadMenus(m.DropDownItems,nName);
}
}
}
问题是我不知道可以使用winform的DevExpress的属性。那么我可以使用DevExpress而不是winform吗? this is my image of winform 我希望通过使用我的类和方法更改为与图片DevExpress Menu相同的DevExpress。谢谢
答案 0 :(得分:0)
DevExpress栏有几种类型的菜单项。他们的列表可在The List of Bar Items and Links获得。由于您需要处理项目的点击,我认为您需要BarButtonItem。您可以使用BarButtonItem.Caption属性设置其标题。点击即可处理BarItem.ItemClick事件。
<强>被修改强>
使用DevExpress,您可以使用Bar替换橙色工具栏。为此,只需在表单上放置BarManager即可。它会创建一些默认栏。如上所述,程序,销售,帮助等命令可以用BarButtonItem替换。可以使用BarSubItem完成列表及其子项目。我看到你有Windows项目。如果您的应用程序是MDI,我建议您使用BarMdiChildrenListItem。它将自动为所有MDI子表单生成项目。
如果您需要在代码中生成项目,请参阅BarManager Class帮助主题,该主题为此提供了一些代码。