xkaeli 发表于 2011-7-8 09:27:44

求助getpoint的keyword问题

求助keyword问题

PromptPointOptions ppo=new PromptPointOptions("选择需要标注点");
ppo.Keywords.Add("S_位数");
ppo.Keywords.Add("H_字高");
ppo.AllowNone = false;
PromptPointResult po;
looppoint:
po=ed.GetPoint(ppo);
if (po.Status == PromptStatus.Keyword)
{
    switch (po.StringResult)
    {
      case "字高":
            Program.hight = ed.GetDouble("输入字高<" + Program.hight.ToString() + ">").Value;
            break;
      case "位数":
            Program.pointxiaoshu = ed.GetInteger("保留小数位数<" + Program.pointxiaoshu.ToString() + ">").Value;
            break;
    }
    goto looppoint;
}
else
{
    basepoint = new Point3d(Math.Round( po.Value.X,Program.pointxiaoshu),Math.Round( po.Value.Y,Program.pointxiaoshu),Math.Round( po.Value.Z,Program.pointxiaoshu));
}

为什么我调试的时候输入关键字“H”后没有反应?输入“S”能正常运行。


http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 xkaeli的微博

sieben 发表于 2011-7-8 09:51:59

    switch (po.StringResult)
    {
      case "H_字高":
            Program.hight = ed.GetDouble("输入字高<" + Program.hight.ToString() + ">").Value;
            break;
      case "S_位数":
            Program.pointxiaoshu = ed.GetInteger("保留小数位数<" + Program.pointxiaoshu.ToString() + ">").Value;
            break;
    }

xkaeli 发表于 2011-7-8 10:04:03

回复 sieben 的帖子

应该不是这个问题,刚开始我把这一块代码写的是ed.WriteMessage(po.StringResult);来测试,结果是输入S显示为“位数”,输入H不让输。

当我把添加关键字的顺序颠倒一下后只能输入H不能输入S了,伤心流涕!

sieben 发表于 2011-7-8 12:02:17

本帖最后由 sieben 于 2011-7-8 12:10 编辑

把里面"H_字高"下横杆去掉试试,改为"H字高","S位数";
再不行把ppo.AllowNone = false;改为ppo.AllowNone = true; 把AllowArbitraryInput也设置为true
页: [1]
查看完整版本: 求助getpoint的keyword问题