用keyword实现Editor.GetSelection的退出功能

有时候我们在使用GetSelection功能让用户选择实体时,可能会给用户提供一些keyword选项,要接收用户选择的keyword选项,需要用到PromptSelectionOptions.KeywordInput事件。

但是,有时为了有时在用户选择了某个keyword项时,需要结束GetSelection主操作(这样体验性更好,用户更方便),但是一直没有找到解决的办法,试了好多方法都以失败告终。

今天,有一个功能又需要实现这一点,于是在群里问了一句,胖子说他QQ空间里有,于是进去一看,晃然大悟:在keywordInput事件里抛出一个异常即可。

[CommandMethod("SELKW")]
publicvoid GetSelectionWithKeywords()
{
    Document doc =
        Application.DocumentManager.MdiActiveDocument;
    Editor ed = doc.Editor;

    // Create our options object
    PromptSelectionOptions pso = newPromptSelectionOptions();

    // Add our keywords
    pso.Keywords.Add("FIrst");
    pso.Keywords.Add("Second");

    // Set our prompts to include our keywords
    string kws = pso.Keywords.GetDisplayString(true);
    pso.MessageForAdding =
                "\nAdd objects to selection or " + kws;
    pso.MessageForRemoval =
            "\nRemove objects from selection or " + kws;

    pso.KeywordInput +=
           newSelectionTextInputEventHandler(pso_KeywordInput);

    PromptSelectionResult psr = null;
    try
    {
        psr = ed.GetSelection(pso);

        if (psr.Status == PromptStatus.OK)
        {
            //your logic
        }
    }
    catch (System.Exception ex)
    {
        if (ex is Autodesk.AutoCAD.Runtime.Exception)
        {
            Autodesk.AutoCAD.Runtime.Exception aEs =
                    ex as Autodesk.AutoCAD.Runtime.Exception;

            //user has pressed keyword.

            if (aEs.ErrorStatus ==
                        Autodesk.AutoCAD.Runtime.ErrorStatus.OK)
            {
                ed.WriteMessage("\nKeyword entered: {0}",
                                                     ex.Message);
            }
            else
            {
                //other exception, please handle
            }
        }
    }

}
void pso_KeywordInput(object sender, SelectionTextInputEventArgs e)
{
    //user has pressed keyword, so throw Exception
    throw new Autodesk.AutoCAD.Runtime.Exception(
                Autodesk.AutoCAD.Runtime.ErrorStatus.OK, e.Input);
}

用keyword实现Editor.GetSelection的退出功能

时间: 2024-10-08 00:28:13

用keyword实现Editor.GetSelection的退出功能的相关文章

网上图书商城项目学习笔记-009退出功能

一.退出功能流程分析 二.代码 1.view层 1)top.jsp 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 3 4 5 <!DOCTYPE HT

ThinkPHP 分页类的使用及退出功能的实现

/* ThinkPHP设置编码统一: 一.数据库设置为utf8_bin 二.HTML页面设置charset=utf-8,而且检查文档编码格式是否是utf-8.phpDesigner8设置方式为“文件->文件编码->选中UTF-8 */ <?php /** 这是后台index控制器 */ Class IndexAction extends CommonAction{ public function index(){ $this->display(); } Public functio

手机影音最终,软件退出功能的优化

现在软件到了主页面,点一次返回键后,就退出了,如果用户不小心点到了,就退出,比较不友好,那么就要在这里做一下判读,当用户2秒内再点击返回键后,就退出. 在MainActivity里,重写onKeyDown();方法. 定义一个boolean isExit=false;  //判断是否退出操作 第一次接收到返回键监听时,将isExit设置为true,然后弹出toast,提示用户2秒内再按就退出. 然后延迟2秒发一个handler,在handler里将isExit=false;表示2秒内没按返回键,

android实现点击两次返回键实现退出功能

在使用android平台的app是我们经常会发现点击两次返回键会提示是否退出的功能,下面讲讲此功能是如何实现的(此方法比较简单) 第一种方法是对系统返回键进行监听,定义一个变量记录按键时间,通过计算时间差来实现该功能,代码如下: //退出时的时间private long mExitTime;//对返回键进行监听@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCO

android中实现“再按一次退出”功能

首先,定义一个当前时间的变量:private long mExitTime;这个常量是用来计算得到当前时间的.代码如下: mExitTime = System.currentTimeMillis();// 更新mExitTime到当前时间 定义两次点击退出按钮的最大时间间隔:private long waitTime=2000;当时间间隔小于waitTime时退出程序,大于waitTime时此次点击就是第一次点击了,会弹出再次点击退出的提示. 然后实现页面的onkeydown事件.代码如下: p

手机游戏的退出功能

手游退出时按下的返回键与键盘上的Esc键相同. 一般情况下手游都是按两下返回键才退出游戏所以,需要用到协成. 下面是代码: if(Input .GetKeyDown(KeyCode.Escape)) { if (exitMessage == null) { exitMessage = Instantiate(exitMessagePrefab) as GameObject;  //退出时的提示信息实例化 StartCoroutine("resetQuitMessage"); } els

iOSiOS开发之退出功能(易错)

如果,我们有两个控制器,第一个控制器是MainController,它是与Main.storyboard相关联的.第二个控制器是myController.假设myController中有一个退出按钮,点击退出按钮从myController返回到MainController,特别注意的是,下面写法是错误的: self.view.window.rootViewController = [[MainController alloc] init]; 因为这样去切换一个和storyboard文件相关联的控

案例33-用户退出功能

1 LogoutServlet代码 package www.test.web.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.ser

Spring Security简单实现自定义退出功能

1.前端页面写法 <a href="javascript:;" onclick="logoutBackground()">退出</a> 2.js /** * 退出后台 */ function logoutBackground() { $.get("/admin/logout", function (msg) { if (msg === "true") { window.location.href = &