AnsweredAssumed Answered

Is it possible to cancel an edit event such as onCreateFeature from an event listener?

Question asked by harlan.marshall on Jul 6, 2017
Latest reply on Jul 7, 2017 by harlan.marshall

I'm creating an ArcMap extension to listen for onCreateFeature events and set an attribute value on the new feature. I want the user to get an ok/cancel dialog that will either proceed to create the feature or cancel the feature creation based on the user response.

 

private void m_editEvents_OnCreateFeature(ESRI.ArcGIS.Geodatabase.IObject obj)
{
    IFeature pFeature = obj as IFeature;
    if (pFeature != null) // will never be null on create new feature
    {
        // get the new feature's table name
        ITable tbl = pFeature.Table as ITable;
        IDataset dataset = tbl as IDataset;
        string sTblName = dataset.Name.Split('.')[2].ToLower();

        // Implement user OK or Cancel message box
        bool resp = GetOKCancelResponse("Creating New " + sTblName.ToUpper() + " Feature", "Do you want to create a new " + sTblName + " point?");
        if (resp == false)
        {
            //Cancel the operation
        }
        else
        {
            // do important stuff
        }
    }
}

private bool GetOKCancelResponse(string caption, string message)
{
    bool rslt = false;
    var result = MessageBox.Show(message, caption,
                                    MessageBoxButtons.OKCancel,
                                    MessageBoxIcon.Question);

    // If the no button was pressed ...
    if (result == DialogResult.OK)
        rslt = true;

    return rslt;
}

Outcomes