100165490.htm

来自「C#高级编程(第三版),顶死你们。。 。up」· HTM 代码 · 共 199 行 · 第 1/2 页

HTM
199
字号
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.Windows.Forms.TreeViewEventArgs e)</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">&nbsp;&nbsp; ClearTextFields();</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; //get CultureInfo object from tree</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; CultureInfo ci = (CultureInfo)e.Node.Tag;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; textName.Text = ci.Name;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; textNativeName.Text = ci. NativeName;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; textEnglishName.Text = ci. EnglishName;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;</span></p>
<p class="2" style="MARGIN-TOP: 0cm; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; checkIsNeutral.Checked = ci. IsNeutralChecked;</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">然后获取文化的日历信息。</span><span lang="EN-US">CultureInfo</span><span style="FONT-FAMILY: 宋体">类的</span><span lang="EN-US">Calendar</span><span style="FONT-FAMILY: 宋体">属性返回特定文化的默认</span><span lang="EN-US">Calendar</span><span style="FONT-FAMILY: 宋体">对象。因为</span><span lang="EN-US">Calendar</span><span style="FONT-FAMILY: 宋体">类没有名称属性,所以需要使用基类的</span><span lang="EN-US">ToString()</span><span style="FONT-FAMILY: 宋体">方法获取类的名称,并删除这个字符串的命名空间,最后在文本字段</span><span lang="EN-US">textCalendar</span><span style="FONT-FAMILY: 宋体">中显示它。</span></p>
<p class="MsoNormal"><span style="FONT-FAMILY: 宋体">一种文化可能支持多种日历,所以</span><span lang="EN-US">OptionalCalendars</span><span style="FONT-FAMILY: 宋体">属性返回额外支持的</span><span lang="EN-US">Calendar</span><span style="FONT-FAMILY: 宋体">对象数组。这些可选的日历显示在列表框</span><span lang="EN-US">listCalendars</span><span style="FONT-FAMILY: 宋体">中。派生于</span><span lang="EN-US">Calendar</span><span style="FONT-FAMILY: 宋体">的</span><span lang="EN-US">GregorianCalendar</span><span style="FONT-FAMILY: 宋体">类还有一个</span><span lang="EN-US">CalendarType</span><span style="FONT-FAMILY: 宋体">属性,它列出了</span><span lang="EN-US">Gregorian</span><span style="FONT-FAMILY: 宋体">日历的类型。这个类型可以是枚举</span><span lang="EN-US">GregorianCalendarTypes</span><span style="FONT-FAMILY: 宋体">中的一个值:</span><span lang="EN-US">Arabic</span><span style="FONT-FAMILY: 宋体">、</span><span lang="EN-US">MiddleEastFrench</span><span style="FONT-FAMILY: 宋体">、</span><span lang="EN-US">TransliteratedFrench</span><span style="FONT-FAMILY: 宋体">、</span><span lang="EN-US">USEnglish</span><span style="FONT-FAMILY: 宋体">或</span><span lang="EN-US">Localized</span><span style="FONT-FAMILY: 宋体">,这取决于文化。使用</span><span lang="EN-US">Gregorian</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">//default calendar</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">textCalendar.Text = ci.Calendar.ToString().Remove(0,21);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">//fill optional calendars</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">listCalendars.Items.Clear();</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">foreach (Calendar optCal in ci.OptionalCalendars)</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">&nbsp;&nbsp;&nbsp; string calName = optCal.ToString().Remove(0,21);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; //for GregorianCalendar add type information</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; if (optCal is System.Globalization.GregorianCalendar)</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; {</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GregorianCalendar gregCal = optCal as GregorianCalendar;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; calName += &quot; &quot; + gregCal.CalendarType.ToString();</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; }</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; listCalendars.Items.Add(calName);</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">if</span><span style="FONT-FAMILY: 宋体">语句中使用</span><span lang="EN-US">!ci.IsNeutralCulture</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">ShowSamples()</span><span style="FONT-FAMILY: 宋体">显示数字和日期示例。这个方法将在下一步执行。使用方法</span><span lang="EN-US">ShowRegionInformation()</span><span style="FONT-FAMILY: 宋体">显示区域的一些信息。对于不变的文化,只能显示数字和日期示例,不能显示区域信息。不变的文件与实际的语言无关,所以与区域也无关。</span></p>
<p class="2" style="MARGIN-TOP: 8.15pt; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 27.65pt"><span lang="EN-US">//display number and date samples</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 27.65pt"><span lang="EN-US">if(!ci.IsNeutralCulture)</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 27.65pt"><span lang="EN-US">{</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp; groupSamples.Enabled = true;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp; ShowSamples(ci);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp; //invariant culture doesn't have a region</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp; if (ci.ThreeLetterISOLanguageName = &quot;IVL&quot;)</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; groupRegionInformation.Enabled = false;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp; else</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; groupRegionInformation.Enabled = true;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ShowRegionInformation(ci.LCID);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 27.65pt"><span lang="EN-US">}</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 27.65pt"><span lang="EN-US">else // neutral culture: no region, no number/date formatting</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 27.65pt"><span lang="EN-US">{</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp; groupSamples.Enabled = false;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp; groupRegionInformation.Enabled = false;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 27.65pt"><span lang="EN-US">}</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">CultureInfo</span><span style="FONT-FAMILY: 宋体">类型的对象传送给</span><span lang="EN-US">ToString()</span><span style="FONT-FAMILY: 宋体">方法的</span><span lang="EN-US">IFormatProvider</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">private void ShowSamples(CultureInfo ci)</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">&nbsp;&nbsp; double number = 9876543.21;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; textSampleNumber.Text = number.ToString(&quot;N&quot;, ci);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; DateTime today = DateTime.Today;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; textSampleDate.Text = today.ToString(&quot;D&quot;, ci);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; DateTime now = DateTime.Now;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; textSampleTime.Text = now.ToString(&quot;T&quot;, ci);</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">RegionInfo</span><span style="FONT-FAMILY: 宋体">对象相关的信息,通过在方法</span><span lang="EN-US">ShowRegionInformation()</span><span style="FONT-FAMILY: 宋体">中传送选中的文化标识符,构造一个</span><span lang="EN-US">RegionInfo</span><span style="FONT-FAMILY: 宋体">对象,然后访问属性</span><span lang="EN-US">DisplayName</span><span style="FONT-FAMILY: 宋体">、</span><span lang="EN-US">CurrencySymbol</span><span style="FONT-FAMILY: 宋体">、</span><span lang="EN-US">ISOCurrencySymbol</span><span style="FONT-FAMILY: 宋体">和</span><span lang="EN-US">IsMetric</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">private void ShowRegionInformation(int culture)</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">&nbsp;&nbsp; RegionInfo ri = new RegionInfo(culture);</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; textRegionName.Text = ri.DisplayName;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; textCurrency.Text = ri.CurrencySymbol;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; textCurrencyName.Text = ri.ISOCurrencySymbol;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">&nbsp;&nbsp; checkIsMetric.Checked = ri. IsMetric;</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">17-7</span><span style="FONT-FAMILY: 宋体">所示。</span></p>
<p align="center"><span lang="EN-US"><img height="283" src="17/image007.jpg" width="276" alt="" /></span></p>
<p style="FTEL: .0001pt" align="center"><span style="FONT-FAMILY: 宋体">图</span><span lang="EN-US">&nbsp; 17-7</span></p></div>
                <!-- page -->
                <div class="page" style="text-align: center">
                    <a href="100165489.htm">上一页</a>&nbsp;&nbsp;&nbsp;<a href="index.html">首页</a>&nbsp;&nbsp;&nbsp;<a href="100165491.htm">下一页</a>
                </div>
                <div style="margin: 0px auto; width: 700px; border: solid 1px #0b5f98;">
                    <div style="float: left; width: 16px; background-color: #0b5f98; color: White; padding: 1px;">
                        图书导读
                    </div>
                    <div style="float: right; width: 670px; text-align: left; line-height: 16pt; padding-left: 2px">
                        <!--导读-->
                        <h1 id="divCurrentNode2" style="color: #b83507; width: 100%; text-align: left; font-size: 12px; padding-left: 2px">当前章节:<a href='100165490.htm'><font color='red'>17.1.3  使用文化</font></a></h1>
                        <div id="divRealteNod2" style="padding-left: 2px">
                        <div style='float:left;width:49%'>·<a href='100165487.htm'>17.1  System.Globalization命名空间</a></div><div style='float:right;width:49%'>·<a href='100165488.htm'>17.1.1  Unicode问题</a></div><div style='float:left;width:49%'>·<a href='100165489.htm'>17.1.2  文化和区域</a></div><div style='float:right;width:49%'>·<a href='100165491.htm'>17.1.4  排序</a></div><div style='float:left;width:49%'>·<a href='100165492.htm'>17.2  资源</a></div><div style='float:right;width:49%'>·<a href='100165493.htm'>17.2.1  创建资源文件</a></div></div>
                    </div>
                </div>
                </div>
        </div>
</body>
</html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?