设为首页 收藏本站
查看: 1096|回复: 0

[经验分享] WM中的OutLook开发和操作

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-12 13:47:49 | 显示全部楼层 |阅读模式
  昨天闲来无视,学习了一下WM的基本开发。看WM有约的那套教程心里痒痒,于是下载了SDK,看看DEMO,在Sample中的示例进行加工。小有一点心得。其实总的来说难度也不是很大,以前没有做过FORM的程序,都是WEB上面的开发,上手来看不是那么特别的困难也。

  • 如果大家不明白安装了SDK之后,如何简历新的项目,如何做调整属性和模拟器的使用。可以参考我的文章下面的,讲的非常的清楚。这里我就不过多的浪费时间做些重复的事情了。
  • 还是先看看效果好了,功能是比较简单的。建立自己的OutLook联系人,对其进行信息的发送和详细信息的管理。
  • DSC0000.gif
  • 以上是功能的初始界面。没什么多说的。联系人的管理。ADD功能可以跳转到手机的电话簿进行添加。
  • DSC0001.gif
  • 选中了联系人之后。进行编辑。或者是新建联系人界面也是如此的。OK保存,也就是Update。

  • ADD之后的界面。



  • Code
    using System;
    using System.Linq;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using Microsoft.WindowsMobile.PocketOutlook;
    using Microsoft.WindowsMobile.Forms;
    using Microsoft.WindowsMobile.PocketOutlook.MessageInterception;
    namespace SmsDefence
    {
        public partial class Form1 : Form
        {
            private Contact contactSelect;
            private OutlookSession outLookSession;
            public Form1()
            {
                this.outLookSession = new OutlookSession();
                InitializeComponent();
                this.InitializeListBox();
            }
            public Contact Select()
            {
                this.ShowDialog();
                return this.contactSelect;
            }
            private void InitializeListBox()
            {
                this.listBox1.DataSource = null;
                this.listBox1.DataSource = this.outLookSession.Contacts.Items;
                this.listBox1.DisplayMember = "FileAs";
                this.listBox1.ValueMember = "ItemId";
            }
            private void button1_Click(object sender, EventArgs e)
            {
                MessageBox.Show("AlexLiu Software Development", "Warning", MessageBoxButtons.OK,   MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1);
            }
            private void menuItem1_Click(object sender, EventArgs e)
            {
                CreateNewConversation();
            }
            private void menuItem2_Click(object sender, EventArgs e)
            {
                this.Close();
            }
            private class Conversation
            {
                private Contact contact;
                private string transcript;
                private string phoneNumber;
                public Conversation(Contact c)
                {
                    contact = c;
                    phoneNumber = c.MobileTelephoneNumber;
                }
                public Contact Contact
                {
                    get { return contact; }
                }
                public string Transcript
                {
                    get { return transcript; }
                }
                public void AddToTranscript(string sender, string msg)
                {
                    transcript = sender + ":" + msg + "\r\n" + transcript;
                }
                public string PhoneNumber
                {
                    get { return phoneNumber; }
                }
                public override string ToString()
                {
                    return contact.ToString();
                }
            }
            private void CreateNewConversation()
            {
                Conversation currentConv = null;
                ChooseContactDialog dlg = new ChooseContactDialog();
                dlg.RequiredProperties = new ContactProperty[] { ContactProperty.AllTextMessaging };
                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    foreach (Conversation conv in listBox1.Items)
                    {
                        if (conv.Contact.ItemId == dlg.SelectedContact.ItemId)
                        {
                            currentConv = conv;
                            break;
                        }
                    }
                }
                if (currentConv == null)
                {
                    currentConv = new Conversation(dlg.SelectedContact);
                    listBox1.Items.Add(currentConv);
                }
                SwitchToConversation(currentConv);
            }
            private void SwitchToConversation(Conversation conversion)
            {
                listBox1.SelectedItem = conversion;
                txtMsg.Focus();
                
            }
            private void button5_Click(object sender, EventArgs e)
            {
                this.Close();
            }
            private void btnNew_Click(object sender, EventArgs e)
            {
                this.contactSelect = new Contact();
                this.outLookSession.Contacts.Items.Add(contactSelect);
                ContactEdit contactDialog = new ContactEdit();
                contactDialog.Edit(ref contactSelect);
                this.InitializeListBox();
            }
            private void btnEdit_Click(object sender, EventArgs e)
            {
                if (this.listBox1.SelectedItem != null)
                {
                    contactSelect = this.listBox1.SelectedItem as Contact;
                    ContactEdit contactDialog = new ContactEdit();
                    contactDialog.Edit(ref contactSelect);
                }
                else { MessageBox.Show("you must select one contact"); }
            }
            private void btnSend_Click(object sender, EventArgs e)
            {
                try
                {
                    contactSelect = this.listBox1.SelectedItem as Contact;
                    if (null == this.outLookSession.SmsAccount)
                    {
                        throw new ArgumentException("this account is not i");
                    }
                    SmsMessage s = new SmsMessage(contactSelect.MobileTelephoneNumber, this.txtMsg.Text);
                    s.Body = this.txtMsg.Text;
                    s.Send();
                    MessageBox.Show("Message Sent");
                }
                catch (NullReferenceException ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
        }
    }

  • 简要说明下:首先是Send方法,如果联系人的手机号码,不为空的话就可以进行信息的发送了。如果不为空,SDK中为我们提供了一个SmsMessage也是就是短信的发送类。新建一个对象s,初始化要指定发送的信息的内容的收件人的手机号码。s的body属性也就是信息体,是要发送的内容。对象的实例s调用Send()方法即可发送了。在Mobile中常用的也是对话框的弹出了。MessageBox.Show方法有几个重载的使用,其中最简单的就是指定弹出对话框所要显示的内容了。新建和编辑函数中的内容大体上面来说也是差不多的,新建的话就是把选中的联系人加入到OutLookSession联系中去。CreateNewConversation()函数,也就是点击ADD之后触发这个函数了,把联系人中的不重复加入进来。ChooseContactDialog这个类,建立一个对象之后,通过对象调用了ShowDialog方法即可进入到手机电话簿中联系人的选取中去。

  • Code
    using System;
    using System.Linq;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using Microsoft.WindowsMobile.Forms;
    using Microsoft.WindowsMobile.PocketOutlook;
    namespace SmsDefence
    {
        public partial class ContactEdit : Form
        {
            private Contact contactCreate;
            public ContactEdit()
            {
                InitializeComponent();
            }
            private void menuItem2_Click(object sender, EventArgs e)
            {
                this.Close();
            }
            private void menuItem1_Click(object sender, EventArgs e)
            {
                this.Close();
            }
            public void Edit(ref Contact contact)
            {
                contactCreate = contact;
                this.ShowDialog();
            }
            private void ContactEdit_Load(object sender, EventArgs e)
            {
                this.txtFirstName.DataBindings.Add("text", this.contactCreate, "FirstName");
                this.txtLastName.DataBindings.Add("text", this.contactCreate, "LastName");
                this.txtCompany.DataBindings.Add("text", this.contactCreate, "CompanyName");
                this.txtEmail.DataBindings.Add("text", this.contactCreate, "Email1Address");
                this.txtWorkPhone.DataBindings.Add("text", this.contactCreate, "BusinessTelephoneNumber");
                this.txtMobile.DataBindings.Add("text", this.contactCreate, "MobileTelephoneNumber");
            }
            private void btnOK_Click(object sender, EventArgs e)
            {
                this.contactCreate.FileAs = this.contactCreate.LastName + "," + this.contactCreate.FirstName;
                this.contactCreate.Update();
                this.Close();
            }
        }
    }
  • 以上的代码是另一个FORM的内容。其主要功能就是对联系人进行编辑或者是新建:当点击OK的时候触发的也就是BTNOK这个onclick时间了,重要的一个方法就是Update()对所做的操作进行更新。Close()我想不必说了。FORM的关闭。Edit方法中无非就是数据的绑定。


  • 参考文章 WM有约:http://www.cnblogs.com/allenlooplee/archive/2009/01/14/1375941.html?CommentID=1440147#Post

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-112719-1-1.html 上篇帖子: DayPilotCalendar:像OutLook一样的 计划任务日程表 控件,for asp.net2.0 下篇帖子: Microsoft Office Outlook Web Access (OWA)初体验
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表