刚写好的Asp.Net时间和日期的Label控件。作为讲解Asp.net控件开发的第一部分:继承开发(5-2) - 中国WEB开发者网络 (http://www.webasp.net) -- 技术教程 (http://www.webasp.net/article/) --- 刚写好的Asp.Net时间和日期的Label控件。作为讲解Asp.net控件开发的第一部分:继承开发(5-2) (http://www.webasp.net/article/5/4124.htm) |
| -- 作者:未知 -- 发布日期: 2003-07-12 |
| public DateTimePickEditor() { // // Windows 窗体设计器支持所必需的 // try { InitializeComponent(); } catch(Exception ee) { MessageBox.Show(ee.Message+"\n"+ee.Source); } // // TODO: 在 InitializeComponent 调用后添加任何构造函数代码 // // this.Show(); } private void btnCancel_Click(object sender, System.EventArgs e) { this.Close(); } /// <summary> /// 获取所有System.Globalization.CultureInfo支持的文化语言,并 /// 将国家的名称填充到“语言类型”。以当前环境的文化语言为默认 /// CultureInfo对象。 /// </summary> void FullcbCultrues() { //清除所有“语言类型”的所有内容 if(this.cbCultures.Items.Count>0) this.cbCultures.Items.Clear(); // //获取所有System.Globalization.CultureInfo支持的文化语言,并将国家的名称填充到“语言类型”。 foreach(CultureInfo country in CultureInfo.GetCultures(CultureTypes.SpecificCultures)) { this.curi = new zyqCultrueInfo(country.Name); if (!this.cbCultures.Items.Contains(curi)) { this.cbCultures.Items.Add(this.curi); } } cbCultures.Items.Add(new zyqCultrueInfo(CultureInfo.InvariantCulture.Name)); //选定获取当前以当前环境的文化语言的索引值 if(this._dtf.LanguageAndCountry==null) this.cbCultures.SelectedIndex =this.cbCultures.FindStringExact(CultureInfo.CurrentCulture.DisplayName); else { this.curi= new zyqCultrueInfo(this._dtf.LanguageAndCountry); this.cbCultures.SelectedIndex=this.cbCultures.FindStringExact(this.curi.DisplayName); } } private void cbCultures_SelectedIndexChanged(object sender, System.EventArgs e) { this.curi = (zyqCultrueInfo)this.cbCultures.SelectedItem; //RFC 1766 name this.txtName.Text =curi.Name; //日历 if(this.cbOptionalCalendars.Items.Count >0) this.cbOptionalCalendars.Items.Clear(); foreach(Calendar cal in this.curi.OptionalCalendars) { if(!this.cbOptionalCalendars.Items.Contains(cal)) this.cbOptionalCalendars.Items.Add(cal); } int i = this.cbOptionalCalendars.SelectedIndex = this.cbOptionalCalendars.Items.IndexOf(this.curi.Calendar); // //分隔符 this.txtDateSeparator.Text = this.curi.DateTimeFormat.DateSeparator; this.txtTimeSeparator.Text = this.curi.DateTimeFormat.TimeSeparator; this.txtAM.Text =this.curi.DateTimeFormat.AMDesignator; this.txtPM.Text = this.curi.DateTimeFormat.PMDesignator; //日期和时间格式: this.cbFormate.Items.Clear(); foreach(string s in this.curi.DateTimeFormat.GetAllDateTimePatterns()) { if(!this.cbFormate.Items.Contains(s)) this.cbFormate.Items.Add(s); } int x=0; if(this._dtf.FormateString!=null) x=this.cbFormate.FindStringExact(this.curi.DateTimeFormat.FullDateTimePattern); if(x>0) this.cbFormate.SelectedIndex =x; else this.cbFormate.SelectedIndex = this.cbFormate.FindStringExact(this.curi.DateTimeFormat.FullDateTimePattern); } private void cbOptionalCalendars_SelectedIndexChanged(object sender, System.EventArgs e) { // cbCultures_SelectedIndexChanged (sender, e); } private void cbFormate_TextChanged(object sender, System.EventArgs e) { this.txtFormat.Text = this.cbFormate.Text; } private void txtFormat_TextChanged(object sender, System.EventArgs e) { try { //this._dtf = this.txtFormat.Text; this.lblExmple.Text = DateTime.Now.ToString(this.txtFormat.Text, curi.DateTimeFormat);; } catch(Exception de) { MessageBox.Show(de.Message,"Wrong"); } } private void cbShortLongDatePattern_TextChanged(object sender, System.EventArgs e) { string wrd=""; string sel=""; switch(this.cbShortLongDatePattern.Text) { case "ShortDate": wrd="d"; sel=this.curi.DateTimeFormat.ShortDatePattern; break; case "LongDate": wrd="D"; sel=this.curi.DateTimeFormat.LongDatePattern; break; case "FullDate": wrd="f/F"; sel=this.curi.DateTimeFormat.FullDateTimePattern; break; case "RFC1123": wrd="r/R"; sel=this.curi.DateTimeFormat.RFC1123Pattern; break; case "ISO8601": wrd="s"; sel=this.curi.DateTimeFormat.SortableDateTimePattern; break; case "UniversalSortableDateTime": wrd="u/U"; //sel=this.curi.DateTimeFormat.ShortDatePattern; break; case "ShortTime": wrd="t"; sel=this.curi.DateTimeFormat.ShortTimePattern; break; case "LongTime": wrd="T"; sel=this.curi.DateTimeFormat.LongTimePattern; break; case "YearMonth": wrd="y/Y"; sel=this.curi.DateTimeFormat.YearMonthPattern; break; default: wrd="g/G"; //sel=this.curi.DateTimeFormat.ShortDatePattern; break; } char[] sp=new char[]{'/'}; string[] ss=wrd.Split(sp); this.cbFormate.Items.Clear(); //DateTimeFormatInfo _dateTimeFormatInfo=new DateTimeFormatInfo(); for(int i=0;i<=(ss.Length-1);i++) { foreach(string s in this.curi.DateTimeFormat.GetAllDateTimePatterns(Convert.ToChar(ss[i]))) { if(!this.cbFormate.Items.Contains(s)) this.cbFormate.Items.Add(s); } if(!sel.Equals(string.Empty)) this.cbFormate.SelectedIndex = this.cbFormate.FindStringExact(sel); else this.cbFormate.SelectedIndex=0; } } private void zyqDateTimePickEditor_Load(object sender, System.EventArgs e) { this.FullcbCultrues(); this.cbShortLongDatePattern.SelectedIndex =0; } private void btnOK_Click(object sender, System.EventArgs e) { if((!this.txtName.Text.Equals(string.Empty)) && (!this.txtFormat.Text.Equals(string.Empty))) if((!this.txtName.Text.Equals(this._dtf.LanguageAndCountry))&& (!this.txtFormat.Text.Equals(this._dtf.FormateString))) { //根据设置一定要生成一个新的对象才能在页面上产生相应的变化 this._dtf= new DTFormatSetting(this.txtFormat.Text,this.txtName.Text); } this.DialogResult = DialogResult.OK; this.Close(); } private void txtName_TextChanged(object sender, System.EventArgs e) { // if(!this.txtName.Text.Equals(string.Empty)) // if(!this.txtName.Text.Equals(this._dtf.LanguageAndCountry)) // this._dtf.LanguageAndCountry =this.txtName.Text; } |
| webasp.net |