找回密码
 立即注册

QQ登录

只需一步,快速开始

ZenosZeng 讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-6-30 20:26  /   查看:4825  /  回复:0
鼠标在FlexGrid中移动过程中,我们可以在MouseMove中计算出鼠标所在的行、列值:
  1.         private void _flex_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
  2.         {
  3.             int row, col;
  4.             double rowHeight, colWidth;

  5.             row = -1;
  6.             col = -1;
  7.             rowHeight = 0;
  8.             colWidth = 0;

  9.             Point p = e.GetPosition(_flex);

  10.             for (int r = 0; r < _flex.Rows.Count; r++)
  11.             {
  12.                 rowHeight += _flex.Rows[r].ActualHeight;
  13.                 if (p.Y < rowHeight)
  14.                 {
  15.                     row = r;
  16.                     break;
  17.                 }
  18.             }

  19.             colWidth = _flex.RowHeaders.DesiredSize.Width;
  20.             for (int c = 0; c < _flex.Rows.Count; c++)
  21.             {
  22.                 colWidth += _flex.Columns[c].ActualWidth;
  23.                 if (p.X < colWidth)
  24.                 {
  25.                     col = c;
  26.                     break;
  27.                 }
  28.             }

  29.             this.label1.Content = string.Format("({0},{1})", row, col);
  30.         }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部