100165498.htm
来自「C#高级编程(第三版),顶死你们。。 。up」· HTM 代码 · 共 365 行 · 第 1/4 页
HTM
365 行
<p class="a4" style="MARGIN-LEFT: 10.7pt"><span lang="EN-US">textTitle</span></p>
</td>
<td style="PADDING-RIGHT: 9.9pt; PADDING-LEFT: 9.9pt; PADDING-BOTTOM: 0cm; WIDTH: 262.25pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none" valign="top" width="350">
<p class="a4" style="MARGIN-LEFT: 10.7pt"><span lang="EN-US">Professional C#</span></p>
</td>
</tr>
<tr>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 9.9pt; PADDING-LEFT: 9.9pt; PADDING-BOTTOM: 0cm; WIDTH: 174.45pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT-STYLE: none" valign="top" width="233">
<p class="a4" style="MARGIN-LEFT: 10.7pt"><span lang="EN-US">textItemsSold</span></p>
</td>
<td style="PADDING-RIGHT: 9.9pt; PADDING-LEFT: 9.9pt; PADDING-BOTTOM: 0cm; WIDTH: 262.25pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none" valign="top" width="350">
<p class="a4" style="MARGIN-LEFT: 10.7pt"><span lang="EN-US">30000</span></p>
</td>
</tr>
<tr>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 9.9pt; PADDING-LEFT: 9.9pt; PADDING-BOTTOM: 0cm; WIDTH: 174.45pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT-STYLE: none" valign="top" width="233">
<p class="a4" style="MARGIN-LEFT: 10.7pt"><span lang="EN-US">pictureFlag</span></p>
</td>
<td style="PADDING-RIGHT: 9.9pt; PADDING-LEFT: 9.9pt; PADDING-BOTTOM: 0cm; WIDTH: 262.25pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none" valign="top" width="350">
<p class="a4" style="MARGIN-LEFT: 10.7pt"><span lang="EN-US"> </span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">除了这个窗体外,还要显示一个信息框,根据当前时间显示不同的问候信息。这说明了动态创建的对话框在进行本地化时必须采用不同的方式。在方法</span><span lang="EN-US">WelcomeMessage()</span><span style="FONT-FAMILY: 宋体">中,使用</span><span lang="EN-US">MessageBox.Show()</span><span style="FONT-FAMILY: 宋体">显示一个信息框,在窗体类</span><span lang="EN-US">BookOfTheDayForm</span><span style="FONT-FAMILY: 宋体">的构造函数中调用方法</span><span lang="EN-US">WelcomeMessage()</span><span style="FONT-FAMILY: 宋体">,之后调用</span><span lang="EN-US">InitializeComponent()</span><span style="FONT-FAMILY: 宋体">。</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">下面是</span><span lang="EN-US">WelcomeMessage()</span><span style="FONT-FAMILY: 宋体">方法的代码:</span></p>
<p class="2" style="MARGIN-TOP: 8.15pt; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="ES">public void WelcomeMessage()</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="ES">{</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="ES"> DateTime now = DateTime.Now;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="ES"> string message;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="ES"> if (now.Hour <= 12)</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="ES"> {</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="ES"> message = "Good Morning";</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="ES"> }</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="ES"> else if (now.Hour <= 19)</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="ES"> {</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="ES"> message = "Good Afternoon";</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> }</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> else</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> {</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="ES"> message = "Good Evening";</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="ES"> }</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="ES"> MessageBox.Show(message + " \nThis is a localization sample.");</span></p>
<p class="2" style="MARGIN-TOP: 0cm; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="ES">}</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">窗体中的数字和日期应使用格式化选项来设置。我们添加一个新方法</span><span lang="EN-US">SetDateAnd Number()</span><span style="FONT-FAMILY: 宋体">,用格式选项来设置这些值。在真正的应用程序中,这些值应从一个</span><span lang="EN-US">Web</span><span style="FONT-FAMILY: 宋体">服务程序或数据库中得到,但在本例中,要把注意力集中在本地化上。日期使用</span><span lang="EN-US">D</span><span style="FONT-FAMILY: 宋体">选项来格式化</span><span lang="EN-US">(</span><span style="FONT-FAMILY: 宋体">显示长日期名</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 宋体">。使用图形数字格式化字符串</span><span lang="EN-US">###,###,###</span><span style="FONT-FAMILY: 宋体">来显示该数字,其中</span><span lang="EN-US">"#"</span><span style="FONT-FAMILY: 宋体">表示一个数字,</span><span lang="EN-US">","</span><span style="FONT-FAMILY: 宋体">是一个组分隔符:</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="2" style="MARGIN-TOP: 8.15pt; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US">public void SetDateAndNumber()</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">{</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> DateTime today = DateTime.Today;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> textDate.Text = today.ToString("D");</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> int itemsSold = 327444;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> textItemsSold.Text = itemsSold.ToString("###,###,###");</span></p>
<p class="2" style="MARGIN-TOP: 0cm; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US">}</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">在</span><span lang="EN-US">BookOfTheDayForm</span><span style="FONT-FAMILY: 宋体">类的构造函数中,调用了</span><span lang="EN-US">WelcomeMessage()</span><span style="FONT-FAMILY: 宋体">和</span><span lang="EN-US">SetDateAndNumber()</span><span style="FONT-FAMILY: 宋体">方法:</span></p>
<p class="2" style="MARGIN-TOP: 8.15pt; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US">public BookOfTheDayForm()</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">{</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> WelcomeMessage();</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> //</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> // Required for Windows Form Designer support</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> //</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> InitializeComponent();</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> SetDateAndNumber();</span></p>
<p class="2" style="MARGIN-TOP: 0cm; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US">}</span></p>
<p class="MsoNormal"><span lang="ES">Windows</span><span style="FONT-FAMILY: 宋体">窗体</span><span style="FONT-FAMILY: 宋体">设计器的一个功能是可以把窗体的</span><span lang="ES">Localizable </span><span style="FONT-FAMILY: 宋体">属性从</span><span lang="ES">false</span><span style="FONT-FAMILY: 宋体">改为</span><span lang="ES">true</span><span style="FONT-FAMILY: 宋体">。这个设置的结果是为对话框创建一个基于</span><span lang="ES">XML</span><span style="FONT-FAMILY: 宋体">的资源文件,存储所有的资源字符串、属性</span><span lang="EN-US">(</span><span style="FONT-FAMILY: 宋体">包括</span><span lang="ES">Windows</span><span style="FONT-FAMILY: 宋体">窗体</span><span style="FONT-FAMILY: 宋体">元素的位置的大小</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 宋体">,嵌入的图形等。另外,对方法</span><span lang="EN-US" style="LETTER-SPACING: -0.3pt">InitializeComponent()</span><span style="FONT-FAMILY: 宋体; LETTER-SPACING: -0.3pt">的实现也进行了修改:创建类</span><span lang="EN-US" style="LETTER-SPACING: -0.3pt">System.Resources.ResourceManager</span><span style="FONT-FAMILY: 宋体">的一个实例,为了获取文本字段以及图形的值和位置,应使用</span><span lang="EN-US">GetObject()</span><span style="FONT-FAMILY: 宋体">方法,而不是直接在代码中写入值。</span><span lang="EN-US">GetObject()</span><span style="FONT-FAMILY: 宋体">使用当前线程的</span><span lang="EN-US">CurrentUICulture </span><span style="FONT-FAMILY: 宋体">属性来查找合适的本地化资源。</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">下面是在把</span><span lang="EN-US">Localizable </span><span style="FONT-FAMILY: 宋体">属性设置为</span><span lang="EN-US">true</span><span style="FONT-FAMILY: 宋体">之前的部分</span><span lang="EN-US">InitalizeComponent()</span><span style="FONT-FAMILY: 宋体">,其中设置了</span><span lang="EN-US">textTitle</span><span style="FONT-FAMILY: 宋体">的所有属性。</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="2" style="MARGIN-TOP: 8.15pt; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US">private void InitializeComponent()</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US">{</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> //...</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> this.textTitle = new System.Windows.Forms.TextBox();</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> //...</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> // </span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> // textTitle</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> // </span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> this.textTitle.Location = new System.Drawing.Point(24, 152);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> this.textTitle.Name = "textTitle";</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> this.textTitle.Size = new System.Drawing.Size(256, 20);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; LINE-HEIGHT: 13.5pt; FTEL: 18.45pt"><span lang="EN-US"> this.textTitle.TabIndex = 2;</span></p>
<p class="2" style="MARGIN-TOP: 0cm; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US"> this.textTitle.Text = "Professional C#";</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体; LETTER-SPACING: 0.1pt">把</span><span lang="ES" style="LETTER-SPACING: 0.1pt">Localizable</span><span style="FONT-FAMILY: 宋体; LETTER-SPACING: 0.1pt">属性设置为</span><span lang="ES" style="LETTER-SPACING: 0.1pt">true</span><span style="FONT-FAMILY: 宋体; LETTER-SPACING: 0.1pt">后</span><span style="FONT-FAMILY: 宋体; LETTER-SPACING: 0.1pt">,</span><span lang="ES" style="LETTER-SPACING: 0.1pt">InitalizeComponent()</span><span style="FONT-FAMILY: 宋体; LETTER-SPACING: 0.1pt">的代码会自动修改</span><span style="FONT-FAMILY: 宋体; LETTER-SPACING: 0.1pt">,</span><span style="FONT-FAMILY: 宋体; LETTER-SPACING: 0.1pt">如下所示:</span></p>
<p class="2" style="MARGIN-TOP: 8.15pt; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="ES">private void InitializeComponent()</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">{</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> System.Resources.ResourceManager resources = </span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> new System.Resources.ResourceManager(typeof(BookOfTheDayForm));</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> //...</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> this.textTitle = new System.Windows.Forms.TextBox();</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> //...</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> // </span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> // textTitle</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US"> // </span></p>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?