C#自带报表展示控件的右键菜单的设置,隐藏右键的所有菜单
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#自带报表展示控件的右键菜单的设置,隐藏右键的所有菜单,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1935字,纯文字阅读大概需要3分钟。
内容图文
![C#自带报表展示控件的右键菜单的设置,隐藏右键的所有菜单](/upload/InfoBanner/zyjiaocheng/710/5948bf85d65140908825fb957c1c735c.jpg)
转载自:https://www.cnblogs.com/unforget/archive/2010/04/22/1718215.html
微软的ReportViewer功能很强大。特别是Visual Studio 2010 带的ReportViewer 10.0导出Excel功能堪称完美,以前版本的不能导出子报表的问题也解决了。
ReportViewer提供了一系列的属性用于控制右键菜单,例如showPrintButton设置为false,右键菜单里面的Print项就自动被隐藏了。
不过,不知道是我找的原因还是什么,常规的方法都用遍了都没法隐藏右键菜单的Page Setup项。下午用IL看了下ReportViewer,终于找到了一种方法能修改右键菜单的那个异常顽固的项了。
共享给大家,提供的这种方式,经修改,可以完全自定义右键菜单。
/// <summary>
/// 禁用掉右键菜单的 print setup 选项
/// </summary>
/// <param name="rv">ReportViewer</param>
private void DisableContextMenuStrip(ref ReportViewer rv)
{
BindingFlags bf = BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance;
//get winRSviewer
FieldInfo fiwinRSviewer = rv.GetType().GetField("winRSviewer", bf);
object objwinRSviewer = fiwinRSviewer.GetValue(rv);
//get m_reportPanel
FieldInfo fireportPanel = objwinRSviewer.GetType().GetField("m_reportPanel", bf);
object objreportPanel = fireportPanel.GetValue(objwinRSviewer);
//get m_contextMenu
FieldInfo ficontextMenuStrip = objreportPanel.GetType().GetField("m_contextMenu", bf);
ContextMenuStrip cms = ficontextMenuStrip.GetValue(objreportPanel) as ContextMenuStrip;
//
if (cms == null)
{
return;
}
//replace "Page Setup"
int nIndex = -1;
for (int i = 0; i < cms.Items.Count; i++)
{
nIndex ++;
if (cms.Items[i].Text == "P&age Setup")
{
break;
}
}
//create new item
ToolStripMenuItem tsmiNewPS = new ToolStripMenuItem("P&age Setup");
tsmiNewPS.Click += new EventHandler(tsmiNewPS_Click);
//add item
cms.Items.RemoveAt(nIndex);
cms.Items.Add(tsmiNewPS);
}
/// <summary>
/// 自定义item响应
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void tsmiNewPS_Click(object sender, EventArgs e)
{
MessageBox.Show("自定义的item响应!!");
}
内容总结
以上是互联网集市为您收集整理的C#自带报表展示控件的右键菜单的设置,隐藏右键的所有菜单全部内容,希望文章能够帮你解决C#自带报表展示控件的右键菜单的设置,隐藏右键的所有菜单所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。