from following method i bind list with data gride
private List<unreademails> GetEmailsFromFolder(string folderName)
{
List<unreademails> emails = null;
object missing = System.Reflection.Missing.Value;
try
{
Outlook.MAPIFolder fldEmails = null;
emails = new List<unreademails>();
Outlook._Application outlookObj = new Outlook.Application();
if (folderName == "Default")
{
fldEmails = (Outlook.MAPIFolder)outlookObj.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
}
else
{
Outlook.MAPIFolder emailFolder = (Outlook.MAPIFolder)
outlookObj.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
foreach (Outlook.MAPIFolder subFolder in emailFolder.Folders)
{
if (subFolder.Name == folderName)
{
fldEmails = subFolder;
break;
}
}
}
foreach (Microsoft.Office.Interop.Outlook._MailItem mailItem in fldEmails.Items)
{
if (mailItem.UnRead)
{
UnreadEmails mail = new UnreadEmails();
mail.SenderName = (mailItem.UnRead == false) ? string.Empty : mailItem.SenderName;
mail.SenderAddress = (mailItem.UnRead == false) ? string.Empty : mailItem.SenderEmailAddress;
mail.Subject = (mailItem.UnRead == false) ? string.Empty : mailItem.Subject;
mail.BodyContent = (mailItem.UnRead == false) ? string.Empty : mailItem.Body;
emails.Add(mail);
}
}
}
catch (System.Exception ex)
{
throw new ApplicationException(ex.Message);
}
return emails;
}
private void LoadEmailFolderCombo()
{
Outlook._Application outlookObj = new Outlook.Application();
Outlook.MAPIFolder emailFolder = (Outlook.MAPIFolder)
outlookObj.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
if (!nbFolder.Items.Contains("Default"))
{
nbFolder.Items.Add("Default");
}
foreach (Outlook.MAPIFolder subFolder in emailFolder.Folders)
{
if (!nbFolder.Items.Contains(subFolder.Name))
{
nbFolder.Items.Add(subFolder.Name);
}
}
}</unreademails></unreademails></unreademails>
then by following i generate data grid
string mailFldrName = string.Empty;
if (nbFolder.SelectedItem == null)
{
mailFldrName = "Default";
nbFolder.SelectedItem = "Default";
}
else
{
mailFldrName = nbFolder.SelectedItem.ToString();
}
dgvUnreadMails.Visible = false;
if (GetEmailsFromFolder(mailFldrName).Count > 0)
{
dgvUnreadMails.Visible = true;
btnSave.Enabled = true;
tabCreateFilter.Enabled = true;
dgvUnreadMails.DataSource = GetEmailsFromFolder(mailFldrName);
}
else
{
MessageBox.Show("No unread E-mails in Inbox", "Unread E-mails", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
UnreadMail is a class like following
class UnreadEmails
{
private string _senderName;
public string SenderName
{
get { return _senderName; }
set { _senderName = value; }
}
}
so i need to add buttons to one columns
is there any way to do it
and also i need tell that data grid is not defined eraly it also done by program ..