Click to See Complete Forum and Search --> : Popup Outlook contact makes the WinForm stuck and hold


manfree
April 6th, 2009, 10:30 PM
Hi all

I would like to popup an Outlook contact via a Click button. The "Popup action" works fine~
However, after the outlook contact comes up, the WinForm(Form1) seem stuck and hold ....
I can't move, minimize and maximize the WinForm ?????
Any body know what is the problem in here ??
Thanks



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Outlook = Microsoft.Office.Interop.Outlook;

namespace testing1
{
public partial class Form1 : Form
{
Outlook.Application oApp = new Outlook.Application();
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{

}
private void FindContactEmailByName(string firstName, string lastName)
{
Outlook.NameSpace outlookNameSpace = oApp.GetNamespace("MAPI");
Outlook.MAPIFolder contactsFolder = outlookNameSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderContacts);

Outlook.Items contactItems = contactsFolder.Items;

try
{
Outlook.ContactItem contact = (Outlook.ContactItem)contactItems.Find(String.Format("[FirstName]='{0}' and " + "[LastName]='{1}'", firstName, lastName));
if (contact != null)
{
contact.Display(true);
}
else
{
MessageBox.Show("The contact information was not found.");
}
}
catch (Exception ex)
{
throw ex;
}
}

private void button1_Click(object sender, EventArgs e)
{
FindContactEmailByName("Tom", "Lee");
}

}
}

JonnyPoet
April 7th, 2009, 01:36 PM
Hmmm. This is strange as your code works fine on my machine :D
I''m using Vista home and outlook 2003
There are two things coming in my mind. One is virus checking
When I start your program since you open Outlook when form1 is created my Avast antivirus just shows up on the screen for a second. Maybe your virus scanner makes troubles ?
The other thing is that you are not closing outlook and it still sometimes remains in the task manager after closing the program. So I added
private void Form1_FormClosed(object sender, FormClosedEventArgs e) {
try {
oApp.Quit();
oApp = null;
} catch (Exception ex) {
MessageBox.Show(ex.Message);
}
}This seems to close outlook in the taskmanager too.

Shuja Ali
April 7th, 2009, 02:03 PM
One more thing that comes to my mind is that Outlook has this function when ever an external program tries to access outlook, outlook shows a prompt, maybe you are stuck with that.

JonnyPoet
April 7th, 2009, 05:39 PM
One more thing that comes to my mind is that Outlook has this function when ever an external program tries to access outlook, outlook shows a prompt, maybe you are stuck with that.Yep this was my problem with outlook in XP and was why I never again used it with my programs, but this seems not to be the way when I do his code in a Vista enviroment, maybe because the whole security system has changed ?

manfree
April 7th, 2009, 09:34 PM
Thanks for your help ~~ But i am still using XP platform, not using Vista

My friend advised me to use >> Threading <<
then , the parent WinForm won't be stuck anymore ~~ and I tried it and works great ~~ ^_^