📄 selectcontacts.cs
字号:
using System;
using System.Collections;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using Microsoft.WindowsMobile.PocketOutlook;
namespace SelectContacts
{
public partial class SelectContacts : UserControl
{
ContactCollection contacts;
ArrayList phones = new ArrayList();
// public override sealed event ListChangedEventHandler ListChanged;
public SelectContacts()
{
InitializeComponent();
OutlookSession mySession = new OutlookSession();
contacts = mySession.Contacts.Items;
treeView1.Nodes.Clear();
contacts.Sort("LastName", false);
TreeNode here=null;
for (int i = 0; i < contacts.Count; i++)
{
TreeNode one = GetContactPhone(contacts[i]);
// one.Tag = contacts[i];
if (i % 15 == 0)
{ here=new TreeNode(contacts[i].LastName+contacts[i].FirstName);
treeView1.Nodes.Add(here);
}
if (one!=null&here!=null)
here.Nodes.Add(one);
}
// ListChanged=new ListChangedEventHandler(contactchanged);
// contacts.ListChanged+= ListChanged;
// contacts.SupportsChangeNotification = true;
}
public void contactchanged(object sender, ListChangedEventArgs e)
{// MessageBox.Show("chang");
}
public void setSize(Size size)
{
this.Size = size;
treeView1.Size = new Size(size.Width, size.Height - 20);
}
//对指定电话项生成含有号码的节点,多号码生成多结点。
public TreeNode GetContactPhone(Contact c)
{ ArrayList re=new ArrayList();
TreeNode tr = new TreeNode(c.LastName + c.FirstName);
if (c.Business2TelephoneNumber != "")
re.Add(c.Business2TelephoneNumber);
if (c.BusinessTelephoneNumber!="")
re.Add(c.BusinessTelephoneNumber);
if (c.MobileTelephoneNumber!="")
re.Add(c.MobileTelephoneNumber);
if (c.Home2TelephoneNumber!="")
re.Add(c.Home2TelephoneNumber);
if (c.HomeTelephoneNumber!="")
re.Add(c.HomeTelephoneNumber);
if (c.RadioTelephoneNumber != "")
re.Add(c.RadioTelephoneNumber);
if (re.Count == 0)
tr = null;
if (re.Count == 1)
{
tr.Tag = re[0];
tr.Text = string.Format("{0} 电话:{1}", tr.Text, re[0]);
}
else
{
TreeNode[] phones = new TreeNode[re.Count];
for (int i = 0; i < re.Count; i++)
{ phones[i]=new TreeNode(re[i].ToString());
phones[i].Tag = re[i].ToString();
tr.Nodes.Add(phones[i]).ToString();
}
}
return tr;
}
private void treeView1_KeyPress(object sender, KeyPressEventArgs e)
{
//ArrayList selectphones = new ArrayList();
if (e.KeyChar == (char)Keys.Enter)
{
setphones();
}
}
private void setphones()
{
if (treeView1.SelectedNode != null & treeView1.SelectedNode.Tag != null)
{
treeView1.SelectedNode.Checked = !treeView1.SelectedNode.Checked;
// treeView1.SelectedNode.Toggle();
string nowphone = treeView1.SelectedNode.Tag.ToString();
if (treeView1.SelectedNode.Checked)
{
phones.Add(nowphone);
treeView1.SelectedNode.ImageIndex = 2;
treeView1.SelectedNode.SelectedImageIndex = 2;
}
else
{
phones.Remove(nowphone);
treeView1.SelectedNode.ImageIndex = 0;
treeView1.SelectedNode.SelectedImageIndex = 0;
}
treeView1.Refresh();
}
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
try
{
bool ss=treeView1.CheckBoxes;
setphones();
}
catch (Exception exec)
{ }
}
public string GetPones()
{
if (phones.Count == 0)
{
MessageBox.Show("没有选中项");
return "";
}
else
{
return string.Join(",",(string[])phones.ToArray("".GetType()));
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -