找回密码
 立即注册

QQ登录

只需一步,快速开始

[已处理] 表格设计求助

dc22wt
论坛元老   /  发表于:2012-7-2 10:17:00
11#

请楼主帮忙

QQ截图未命名1234567.png 我现在做了3个button类型,但是我不知道怎么根据什么去判断我选择了什么功能的按钮,例如,我点了查看他就能弹出一个以当前行为信息的窗体,点了修改就能弹出一个以当前行为信息的窗体,谢谢。急等回复!
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-2 11:47:00
12#
回复 11楼dc22wt的帖子

你是通过自定义的CellType实现的嘛,可以给自定义的CellType暴露一个Click事件,使用该CellType的地方订阅该事件,然后根据名称判断点击了哪个Button

如果需要你可以将你的例子发给我调试一下。
回复 使用道具 举报
dc22wt
论坛元老   /  发表于:2012-7-2 12:44:00
13#
例子不太方便上传,但是我相信楼主应该知道我的意识了吧,我吧其中的代码贴给你看下吧      
    private void Form_waterstealorder_Load(object sender, EventArgs e)
        {
            //工单状态栏选择
            OracleConnection conn = new OracleConnection(SettingMpg.ConnenctionString_SZcallcenter);
            string sql = string.Format(@"select * from (select dictname from dict where dictdom ='03') a " );
            OracleCommand cmd = new OracleCommand(sql, conn);
            OracleDataAdapter sda = new OracleDataAdapter();
            sda.SelectCommand = cmd;
            DataSet ds = new DataSet();
            sda.Fill(ds, "a");
            DataRow dr = ds.Tables[0].NewRow();
            dr["dictname"] = ("== 请选择 ==");
            ds.Tables[0].Rows.InsertAt(dr, 0);
            comboBox2.DataSource = ds.Tables["a"];
            comboBox2.DisplayMember = "dictname";
           
            //工单显示
            string sql2 = string.Format(@"select reporter,reportedperson,reportphone,reporttime,acceptor,ordersource,orderstate from ding_waterstealorder");
             cmd = new OracleCommand(sql2, conn);
             sda.SelectCommand = cmd;
             DataTable dt = new DataTable();
             sda.Fill(dt);
             fpSpread1_Sheet1.DataSource = dt;
             conn.Close();
             cmd.Dispose();

            // 设置最后三列之间的边线不显示
             fpSpread1_Sheet1.ColumnCount = 10;
            fpSpread1.Sheets[0].VerticalGridLine = new FarPoint.Win.Spread.GridLine(FarPoint.Win.Spread.GridLineType.None);

            FarPoint.Win.LineBorder border = new FarPoint.Win.LineBorder(Color.LightGray, 1, false, false, true, true);

            fpSpread1.Sheets[0].Columns[0, fpSpread1.Sheets[0].Columns.Count - 4].Border = border;



            //fpSpread1.Sheets[0].Cells[0, 7].Text = "操作";

            fpSpread1_Sheet1.ColumnHeader.Cells[0, 7].Text = "操作";
            fpSpread1.Sheets[0].ColumnHeader.Cells[0, 7].ColumnSpan = 3;

            fpSpread1.Sheets[0].Cells[0, 7].VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;

            fpSpread1.Sheets[0].Columns[7, 9].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;

            fpSpread1.Sheets[0].Columns[7, 9].ForeColor = Color.FromArgb(180,0,0);



            for (int i = 0; i < fpSpread1.Sheets[0].Rows.Count; i++)

            {
                if (fpSpread1_Sheet1.Cells[i, 6].Text == "0305")
                {
                    FarPoint.Win.Spread.CellType.ButtonCellType link = new FarPoint.Win.Spread.CellType.ButtonCellType();
                    FarPoint.Win.Spread.CellType.ButtonCellType link2 = new FarPoint.Win.Spread.CellType.ButtonCellType();
                    FarPoint.Win.Spread.CellType.ButtonCellType link3 = new FarPoint.Win.Spread.CellType.ButtonCellType();
                    link.Text = "查看";
                    fpSpread1_Sheet1.Cells[i, 7].CellType = link;
                    link2.Text = "修改";
                    fpSpread1_Sheet1.Cells[i, 8].CellType = link2;
                    link3.Text = "删除";
                    fpSpread1_Sheet1.Cells[i, 9].CellType = link3;
                    fpSpread1_Sheet1.DataAutoCellTypes = false;
                }
                else
                {
                    FarPoint.Win.Spread.CellType.ButtonCellType link = new FarPoint.Win.Spread.CellType.ButtonCellType();
               
                    //fpSpread1_Sheet1.Cells[i, 7].CellType = link;
                    link.Text = "查看";
                    fpSpread1_Sheet1.Cells[i, 8].CellType = link;
                    fpSpread1_Sheet1.DataAutoCellTypes = false;
                }
            }            

        }

      

        private void button1_Click(object sender, EventArgs e) //查询工单
        {
            Form_waterstealquery form = new Form_waterstealquery();
            form.ShowDialog();
        }

        private void fpSpread1_ButtonClicked(object sender, FarPoint.Win.Spread.EditorNotifyEventArgs e) //单击button事件
        {
           
            Form_waterstealorder form = new Form_waterstealorder();
            form.ShowDialog();
        }

就是在单击button事件中,怎么去判断我点击的button的text是对应的查看,删除,修改,然后弹出相应的对话框
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-2 13:12:00
14#
点击ButtonCellType之后会触发Spread的ButtonClicked事件,可以在该事件中判断当前点击的是哪一个单元格:
  1.     private void Form1_Load(object sender, EventArgs e)
  2.     {
  3.         FarPoint.Win.Spread.CellType.ButtonCellType bctDetail = new FarPoint.Win.Spread.CellType.ButtonCellType();
  4.         bctDetail.Text = "查看";
  5.         fpSpread1.ActiveSheet.Columns[0].CellType = bctDetail;

  6.         FarPoint.Win.Spread.CellType.ButtonCellType bctEdit = new FarPoint.Win.Spread.CellType.ButtonCellType();
  7.         bctEdit.Text = "编辑";
  8.         fpSpread1.ActiveSheet.Columns[1].CellType = bctEdit;
  9.     }

  10.     private void fpSpread1_ButtonClicked(object sender, FarPoint.Win.Spread.EditorNotifyEventArgs e)
  11.     {
  12.         // 在Spread的ButtonClicked事件中来判断当前点击的是哪个按钮

  13.         MessageBox.Show(String.Format("您点击了【{0},{1}】单元格,单元格中的文本时:{2}",e.Row,e.Column,e.EditingControl.Text));
  14.     }
复制代码
回复 使用道具 举报
dc22wt
论坛元老   /  发表于:2012-7-2 15:09:00
15#
谢谢斑竹
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-2 17:13:00
16#
回复 使用道具 举报
dc22wt
论坛元老   /  发表于:2012-7-11 10:42:00
17#
screen.jpg (14.46 KB, 下载次数: 341)
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-11 11:26:00
18#
可以通过设置FocusRenderer来控制选择单元格的样式,比如下面的代码:
  1. fpSpread1.FocusRenderer = new FarPoint.Win.Spread.SolidFocusIndicatorRenderer(Color.Black, 1);
  2. //fpSpread1.FocusRenderer = null;
复制代码


更多可选样式,可以参考帮助文档中的【Customizing the Focus Indicator for a Cell】章节
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部