找回密码
 立即注册

QQ登录

只需一步,快速开始

tfy168

注册会员

20

主题

50

帖子

162

积分

注册会员

积分
162

活字格认证

tfy168
注册会员   /  发表于:2020-7-30 18:38  /   查看:2354  /  回复:3
本帖最后由 tfy168 于 2020-7-30 18:40 编辑

您好!
       在自定义筛选的过程中,我想在自己定义的按钮中分别调用系统内置筛选功能的两个窗体,即按文本筛选和按数值筛选的两个窗体。想达到我点击我自己定义的按钮,可以弹出那两个窗体中的一个?请问可以有方法调用吗?谢谢!






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

3 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-7-31 11:56:50
沙发
还是接你之前的那个帖子,https://gcdn.grapecity.com.cn/fo ... &extra=page%3D1
在代码同样的地方修改,实际上就是让这两个toolstripitem一直保持显示就行,默认的是只显示一个其他的隐藏

  1. private void CustomFilterMenu()
  2.         {
  3.             foreach (Form frm in Application.OpenForms)
  4.             {
  5.                 if (frm.Name == "FilterEditorForm" & frm.GetType().ToString() == "C1.Win.C1FlexGrid.FilterEditorForm")
  6.                 {
  7.                     filterForm = frm;


  8.                     foreach (object item in filterForm.Controls)
  9.                     {
  10.                         if (item is ToolStrip)
  11.                         {

  12.                             foreach(var t in (item as ToolStrip).Items)
  13.                             {
  14.                                 ToolStripItem tsbtn = t as ToolStripItem;

  15.                                 if (tsbtn.Text == "应用")
  16.                                 {
  17.                                     tsbtn.Text = "确定";
  18.                                     tsbtn.Image = Properties.Resources.rotate_btn;
  19.                                 }
  20.                                 else if(tsbtn.Text == "清除")
  21.                                     tsbtn.Visible = false;
  22.                                 if (tsbtn.Text == "按数字筛选")
  23.                                 {
  24.                                     if (tsbtn.Visible == true)
  25.                                     {
  26.                                        
  27.                                         var valueitem=(item as ToolStrip).Items.Cast<ToolStripItem>().Where(n => n.Text == "按数值筛选").First();
  28.                                         valueitem.Visible = true;
  29.                                         valueitem.VisibleChanged += Valueitem_VisibleChanged;
  30.                                         tsbtn.VisibleChanged += Tsbtn_VisibleChanged;
  31.                                        
  32.                                     }
  33.                                 }
  34.                                 //else if(tsbtn.Text != "取消")//其他的按钮全部隐藏
  35.                                 //    tsbtn.Visible = false;

  36.                             }
  37.                         }
  38.                     }
  39.                     
  40.                     frm.Refresh();
  41.                 }
  42.             }
  43.         
  44.         }

  45.         private void Tsbtn_VisibleChanged(object sender, EventArgs e)
  46.         {
  47.             (sender as ToolStripItem).Visible = true;
  48.         }

  49.         private void Valueitem_VisibleChanged(object sender, EventArgs e)
  50.         {
  51.             (sender as ToolStripItem).Visible = true;
  52.         }
复制代码


回复 使用道具 举报
tfy168
注册会员   /  发表于:2020-7-31 16:14:38
板凳
您好!这不是我想要的,我想要的,就是象EXCEL筛选那样的,按数值和按文本是放在上面的,相当于我自己建了个窗体,但是想调用C1的接口。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-7-31 18:20:32
地板
这个确实没有办法做到
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部