Triggering editing mode for a form I think that my code isn't perfect and I need a help to understand how to optimize it. 

In my application I have a main form and several forms for data editing. 
The user can: 


Add a new item
Edit the selected item
Delete the selected item
Duplicate an item with a new name


You can see an example of my code below. I think that the approach to trigger editing mode isn't good.

An alternative way is to create a new form without parameters and then run methods AddItem(), EditItem(), etc., but I don't think that's a good idea either.

Editor modes:

public enum EditMode { Add, Edit, Delete, Copy };


Main form has several buttons:

    private void AddItemBarButton_ItemClick(object sender, ItemClickEventArgs e)
    {
        ItemForm IF = new ItemForm(EditMode.Add);
        IF.ShowDialog();
        IF.Dispose(); 
    }

    private void EditItemBarButton_ItemClick(object sender, ItemClickEventArgs e)
    {
        if (ActiveItem != null)
        {
            ItemForm IF = new ItemForm(EditMode.Edit, ActiveItem);
            MIF.ShowDialog();
            MIF.Dispose();
        }
    }

    private void DeleteItemBarButton_ItemClick(object sender, ItemClickEventArgs e)
    {
        if (ActiveItem != null)
        {
            ItemForm IF = new ItemForm(EditMode.Delete, ActiveItem);
            MIF.Dispose();
        }
    }

    private void CopyItemBarButton_ItemClick(object sender, ItemClickEventArgs e)
    {
        if (ActiveItem != null)
        {
            ItemForm IF = new ItemForm(EditMode.Delete, ActiveItem, "somenewname");
            MIF.Dispose();
        }
    }


Editor form:

    private Item T = null;
    private EditMode Mode;

    private ItemForm()
    {
        InitializeComponent();    
    }

    public ItemForm(EditMode mode) : this()  
    {
        Mode = mode;
        switch (Mode)
        {
            case EditMode.Add:
                T = new Item();
                T.Sort_Order = DateTime.Now;
                break;
        }
    }

    public ItemForm(EditMode mode, Item item) : this()
    {
        Mode = mode;
        T = item;
        switch (Mode)
        {
            case EditMode.Edit:
                NameEdit.Text = T.Name;
                CountEdit.Text = T.Countnum.ToString();
                break;

            case EditMode.Delete:
                cDB.Item.DeleteOnSubmit(T);
                cDB.SubmitChanges();
                break;
        }
    }

    public ItemForm(EditMode mode, Item item, string new_name) : this()
    {
        Mode = mode;
        switch (Mode)
        {
            case EditMode.Copy:
                T = new Item();
                T.Name = new_name;
                T.Countnum = item.Countnum;
                T.Sort_Order = item.Sort_Order;
                cDB.Item.InsertOnSubmit(T);
                cDB.SubmitChanges();
                break;
        }
    }

    private void OKButton_Click(object sender, EventArgs e)
    {
            T.Name = NameEdit.Text;
            T.Countnum = Convert.ToInt(CountEdit.Text);

            if (Mode == EditMode.Add) cDB.Item.InsertOnSubmit(T);
            cDB.SubmitChanges();

            this.Close();
        }
    }
A small note on naming:

Being new to your code base, I have no idea what MIF represents and worse, IF looks a lot like if and it confuses my eyes. As a rule of thumb, don't abbreviate names. Spell them out so that the maintainer coming behind you understands what everything is.