Listing 1 Add Task Event Handler
private void txtNewTask_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
string newItem = txtNewTask.Text.Trim();
if (newItem == string.Empty)
return;
AddTask(newItem);
txtNewTask.Text = string.Empty;
e.Handled = true;
}
}
private void AddTask(string text)
{
ListViewItem item = new ListViewItem(text);
item.Group = lvwTasks.Groups[0];
lvwTasks.Items.Add(item);
}
Listing 2 CTC File
MENUS_BEGIN
guidTasklist_SampleCmdSet:ToolbarMenu,/* == Menu */
guidTasklist_SampleCmdSet:ToolbarMenu,/* == Relative to Group*/
0x0100,/* == Priority */
TOOLWINDOWTOOLBAR, /* == Menu Type*/
"Toolbar"; /* == Text*/
MENUS_END
NEWGROUPS_BEGIN
guidTasklist_SampleCmdSet:ToolbarMenuGroup, /* == New Group */
guidTasklist_SampleCmdSet:ToolbarMenu, /* == Parent Group*/
0x0100; /* == Priority */
NEWGROUPS_END
BUTTONS_BEGIN
guidTasklist_SampleCmdSet:cmdidAddTask, /* == Command */
guidTasklist_SampleCmdSet:ToolbarMenuGroup, /* == Parent Group */
0x0100, /* == Priority */
guidTasklist_SampleCmdSet:bmpPic2, /* == Image */
BUTTON, /* == Button Type */
, /* == Visibility */
"Add Task"; /* == Text */
BUTTONS_END
Listing 3 Initialize() Method
protected override void Initialize()
{
Trace.WriteLine (string.Format(CultureInfo.CurrentCulture,
"Entering Initialize() of: {0}",
this.ToString()));
base.Initialize();
// Add our command handlers for menu (commands must exist in the .ctc file)
MSVSIP.OleMenuCommandService mcs = GetService(typeof(IMenuCommandService)) as
MSVSIP.OleMenuCommandService;
if ( null != mcs )
{
// Create the command for the tool window
CommandID toolwndCommandID = new CommandID(GuidList.guidTasklist_SampleCmdSet,
(int)PkgCmdIDList.cmdidTasklistSample);
MenuCommand menuToolWin = new MenuCommand( new EventHandler(ShowToolWindow),
toolwndCommandID);
mcs.AddCommand( menuToolWin );
}
}
Listing 4 TaskCreatedEventArgs Class
public class TaskCreatedEventArgs : EventArgs
{
private string m_description;
private string m_priority;
public TaskCreatedEventArgs(string desc, string pri)
{
m_description = desc;
m_priority = pri;
}
public string Description
{
get { return m_description; }
}
public string Priority
{
get { return m_priority; }
}
}
Listing 5 Rewriting AddTask()
private void AddTask(object sender, EventArgs e)
{
AddTaskDialog atd = new AddTaskDialog();
if (atd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string description = atd.Description;
string priority = atd.Priority;
if (OnTaskCreated != null)
OnTaskCreated(this,
new TaskCreatedEventArgs(description,
priority));
}
}