MainForm.cs
上传用户:linger1010
上传日期:2008-12-08
资源大小:561k
文件大小:3k
源码类别:

Windows Mobile

开发平台:

C#

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using Microsoft.WindowsMobile.Telephony;
  9. namespace PlayingAPhoneCall
  10. {
  11. public partial class MainForm : Form
  12. {
  13. // 用于构造电话号码
  14. StringBuilder m_sbNumber = new StringBuilder(16);
  15. // 记录是否需要清空号码
  16. // 如果需要清空,则按下某一数字键后,原号码被清空,
  17. // 而按下的数字成为新号码的第一位
  18. // 例如,当拨过一次电话后,就需要清空
  19. bool m_needClear = false;
  20. public MainForm()
  21. {
  22. InitializeComponent();
  23. }
  24. /// <summary>
  25. /// 清空显示的电话号码。
  26. /// </summary>
  27. private void m_clearNumber()
  28. {
  29. m_sbNumber.Remove(0, m_sbNumber.Length);
  30. }
  31. /// <summary>
  32. /// 将缓存中的电话号码显示在屏幕上。
  33. /// </summary>
  34. private void m_refreshNumber()
  35. {
  36. m_lblNumber.Text = m_sbNumber.ToString();
  37. }
  38. /// <summary>
  39. /// 向号码中追加一个数字。
  40. /// </summary>
  41. /// <param name="num">要追加的数字。</param>
  42. private void m_appendNumber(char num)
  43. {
  44. if (m_needClear)
  45. m_clearNumber();
  46. m_sbNumber.Append(num);
  47. m_refreshNumber();
  48. m_needClear = false;
  49. }
  50. private void m_btnNum1_Click(object sender, EventArgs e)
  51. {
  52. m_appendNumber('1');
  53. }
  54. private void m_btnNum2_Click(object sender, EventArgs e)
  55. {
  56. m_appendNumber('2');
  57. }
  58. private void m_btnNum3_Click(object sender, EventArgs e)
  59. {
  60. m_appendNumber('3');
  61. }
  62. private void m_btnNum4_Click(object sender, EventArgs e)
  63. {
  64. m_appendNumber('4');
  65. }
  66. private void m_btnNum5_Click(object sender, EventArgs e)
  67. {
  68. m_appendNumber('5');
  69. }
  70. private void m_btnNum6_Click(object sender, EventArgs e)
  71. {
  72. m_appendNumber('6');
  73. }
  74. private void m_btnNum7_Click(object sender, EventArgs e)
  75. {
  76. m_appendNumber('7');
  77. }
  78. private void m_btnNum8_Click(object sender, EventArgs e)
  79. {
  80. m_appendNumber('8');
  81. }
  82. private void m_btnNum9_Click(object sender, EventArgs e)
  83. {
  84. m_appendNumber('9');
  85. }
  86. private void m_btnStar_Click(object sender, EventArgs e)
  87. {
  88. m_appendNumber('*');
  89. }
  90. private void m_btnNum0_Click(object sender, EventArgs e)
  91. {
  92. m_appendNumber('0');
  93. }
  94. private void m_btnSharp_Click(object sender, EventArgs e)
  95. {
  96. m_appendNumber('#');
  97. }
  98. private void m_btnBackspace_Click(object sender, EventArgs e)
  99. {
  100. if(m_sbNumber.Length > 0)
  101. m_sbNumber.Remove(m_sbNumber.Length - 1, 1);
  102. m_refreshNumber();
  103. }
  104. private void m_btnClear_Click(object sender, EventArgs e)
  105. {
  106. m_clearNumber();
  107. m_refreshNumber();
  108. }
  109. private void m_btnCall_Click(object sender, EventArgs e)
  110. {
  111. Phone p = new Phone();
  112. try
  113. {
  114. p.Talk(m_lblNumber.Text);
  115. }
  116. catch(Exception ex)
  117. {
  118. MessageBox.Show(
  119. String.Format("Error: {0}", ex.Message),
  120. "Talk",
  121. MessageBoxButtons.OK,
  122. MessageBoxIcon.Hand,
  123. MessageBoxDefaultButton.Button1);
  124. }
  125. }
  126. }
  127. }