找回密码
 立即注册

QQ登录

只需一步,快速开始

roger.wang
社区贡献组   /  发表于:2013-10-28 15:05:00
21#
回复 20楼haitun1227的帖子

你在new form前做个判断吧。
if(frm != null)
{
frm.close();
frm= null;
}

这样试试看。
回复 使用道具 举报
haitun1227
中级会员   /  发表于:2013-10-28 15:30:00
22#
回复 19楼roger.wang的帖子

我做了个简单的demo,你看看。我觉得还是关闭窗体不正确。所以会一直出现好多的窗体。你帮忙调试看看。

本帖子中包含更多资源

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

x
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2013-10-28 15:38:00
23#
回复 22楼haitun1227的帖子
  1. private void c1FlexGrid1_MouseEnterCell(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
  2.         {
  3.             int row = e.Row;
  4.             int col = e.Col;

  5.             if (row > 0 && col > 0)
  6.             {
  7.                 if (frm != null)
  8.                 {
  9.                     frm.Close();
  10.                     frm = null;
  11.                 }
  12.                 frm = new Form2();

  13.                 frm.Location = this.c1FlexGrid1.HitTest().Point;
  14.                 frm.Show();
  15.             }
  16.         }
复制代码



试试这个代码。

注意看上面的回帖,你全局frm变量和局部变量frm作用域覆盖导致的这个问题。
回复 使用道具 举报
haitun1227
中级会员   /  发表于:2013-10-28 15:45:00
24#
回复 23楼roger.wang的帖子

现在只出现一个了。但是位置我应该怎么来调试?我想让他显示在我选择的行下面!
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2013-10-28 15:57:00
25#
回复 24楼haitun1227的帖子

    frm.Location = new Point(this.c1FlexGrid1.HitTest().Point.X + 20,
                    this.c1FlexGrid1.HitTest().Point.Y + 20 );


微调x、y, 加减一个数字试试。

Winform的X、y坐标系,这个在百度里面查一下,我这里就不贴图例。

你看这样行不行?
回复 使用道具 举报
haitun1227
中级会员   /  发表于:2013-10-28 16:11:00
26#
回复 25楼roger.wang的帖子

好了。谢谢你的帮助! 非常感谢
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2013-10-28 16:15:00
27#
回复 26楼haitun1227的帖子

呵呵,非常高兴能帮你解决这个问题。
大家彼此学习学习。

:share:
回复 使用道具 举报
123
您需要登录后才可以回帖 登录 | 立即注册
返回顶部