1、问题描述:
WPF使用WindowsFormsHost加载winform控件 datagridview后,在添加ContextMenuStrip后,无法添加ToolStripMenuItem,显示为不支持的类型,强行添加会出现如图错误,虽然运行可使用。
2、解决方案
使用后台代码添加:
界面上创建一个datagridview,
后台创建右键菜单,以及右键菜单的两个按钮,删除和修改。红色的为datagridview控件
System.Windows.Forms.ContextMenuStrip contextMenuStripDatagrid; //表格右键菜单控件
System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_delete;
System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_modify;
将右键菜单附着到datagrid对象,添加完成,之后就可以加入按钮事件了,:
contextMenuStripDatagrid = new ContextMenuStrip();
toolStripMenuItem_delete = new ToolStripMenuItem();
toolStripMenuItem_modify = new ToolStripMenuItem();
Datagridview.ContextMenuStrip = contextMenuStripDatagrid;
contextMenuStripDatagrid.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
toolStripMenuItem_delete,toolStripMenuItem_modify});
contextMenuStripDatagrid.Name = "contextMenuStripDatagrid";
contextMenuStripDatagrid.Size = new System.Drawing.Size(15, 28);
toolStripMenuItem_delete.Name = "toolStripMenuItemDelete";
toolStripMenuItem_delete.Size = new System.Drawing.Size(14, 24);
toolStripMenuItem_delete.Text = "delete";
toolStripMenuItem_modify.Name = "toolStripMenuItemDelete";
toolStripMenuItem_delete.Size = new System.Drawing.Size(14, 24);
toolStripMenuItem_delete.Text = "delete";
添加按钮事件:
toolStripMenuItem_delete.Click += new System.EventHandler(this.btnDelete_Click);
private void btnDelete_Click(object sender, EventArgs e)
{
System.Windows.MessageBox.Show("");
}