因为打算转向.net所以开始些写一些基础的组件,但主要还是为了练练手,
用C#2005写的
其中包括动态控件数组,与DateTime的使用
组件代码:
Using directives#region Using directives
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using CommCode;
#endregion
namespace STextBox
{
public partial class Calendar : UserControl
{
Variable declare#region Variable declare
public bool ShowSelectBar
{
get
{
return panel2.Visible;
}
set
{
panel2.Visible = value;
Calendar_Resize(this, new EventArgs());
}
}
public bool ShowActionButton
{
get
{
return button5.Visible;
}
set
{
button5.Visible = value;
button6.Visible = value;
}
}
public bool ShowActionBar
{
get
{
return panel4.Visible;
}
set
{
panel4.Visible = value;
Calendar_Resize(this, new EventArgs());
}
}
Label[,] mCaleLab = new Label[7, 7];
DateTime mCurDate = DateTime.Now;
public DateTime Value
{
get
{
return mCurDate;
}
}
Color mWeekDayBackColor = Color.BlueViolet;
public Color WeekDayBackColor
{
get
{
return mWeekDayBackColor;
}
set
{
mWeekDayBackColor = value;
}
}
Color mWeekDayForeColor = Color.White;
public Color WeekDayForeColor
{
get
{
return mWeekDayForeColor;
}
set
{
mWeekDayForeColor = value;
}
}
Color mSelectDayBackColor = Color.WhiteSmoke;
public Color SelectDayBackColor
{
get
{
return mSelectDayBackColor;
}
set
{
mSelectDayBackColor = value;
}
}
Color mSelectDayForeColor = Color.Black;
public Color SelectDayForeColor
{
get
{
return mSelectDayForeColor;
}
set
{
mSelectDayForeColor = value;
}
}
Color mOtherDayForeColor = Color.Gray;
public Color OtherDayForeColor
{
get
{
return mOtherDayForeColor;
}
set
{
mOtherDayForeColor = value;
}
}
Color mOtherDayBackColor = SystemColors.ButtonFace;
public Color OtherDayBackColor
{
get
{
return mOtherDayBackColor;
}
set
{
mOtherDayBackColor = value;
}
}
Color mTodayBackColor = Color.MediumSlateBlue;
public Color TodayBackColor
{
get
{
return mTodayBackColor;
}
set
{
mTodayBackColor = value;
}
}
string mOldDate = "1,0";
bool mInit = true;
bool mLbClk = false;
int mBeginYear = 0;
int mEndYear = 0;
bool mRsz = false;
#endregion
Control core#region Control core
private void InitControl()
{
int x = 0;
mInit = true;
mBeginYear = mCurDate.Year - 20;
mEndYear = mCurDate.Year + 20;
string[] tmpWeekDayName ={
"日","一","二","三","四","五","六"
};
string[] tmpMonthName = {
"一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"
};
for (int i = 0; i < 12; i++)
{
comboBox1.Items.Add(tmpMonthName[i]);
}
comboBox1.SelectedIndex = mCurDate.Month - 1;
for (int i = mBeginYear; i <= mEndYear; i++)
{
comboBox2.Items.Add(i.ToString() + '年');
x++;
if (i == mCurDate.Year) comboBox2.SelectedIndex = x - 1;
}
x = 0;
int tmpWidth = 25;//flowLayoutPanel1.Width / 7;
int tmpHeight = 25;//flowLayoutPanel1.Height / 5;
for (int i = 0; i < 7; i++)
{
for (int j = 0; j < 7; j++)
{
mCaleLab[i, j] = new Label();
mCaleLab[i, j].Visible = true;
mCaleLab[i, j].AutoSize = false;
mCaleLab[i, j].Parent = panel3;
mCaleLab[i, j].Width = tmpWidth;
mCaleLab[i, j].Height = tmpHeight;
mCaleLab[i, j].TextAlign = ContentAlignment.MiddleCenter;
mCaleLab[i, j].Top = (i % 7) * tmpHeight;
mCaleLab[i, j].Left = (j % 8) * tmpWidth;
mCaleLab[i, j].Tag = string.Format("{0},{1}", i, j);
if (i == 0)
{
mCaleLab[i, j].Text = tmpWeekDayName[j];
mCaleLab[i, j].BackColor = mWeekDayBackColor;
mCaleLab[i, j].ForeColor = mWeekDayForeColor;
}
mCaleLab[i, j].Click += new EventHandler(OnCaleLabClick);
mCaleLab[i, j].DoubleClick += new EventHandler(OnDoubleClick);
}
}
label2.BackColor = mTodayBackColor;
linkLabel1.Text = mCurDate.ToShortDateString();
mInit = false;
SelectDay(DateTime.Now);
}
private void SelectDay(DateTime pDateTime)
{
SelectDay(pDateTime.Year, pDateTime.Month, pDateTime.Day);
}
private void SelectDay(int pYear, int pMonth, int pDay)
{
if (mInit) return;
int tmpMaxDays = 31;
int tmpFirstDay = 0;
int tmpDays = 0;
int tmpLastRow = 0;
int tmpLastCol = 0;
int x = 0;
tmpMaxDays = DateTime.DaysInMonth(pYear, pMonth);
tmpFirstDay = (int)(new DateTime(pYear, pMonth, 1)).DayOfWeek;
tmpLastRow = 6;
if (tmpFirstDay < 0) tmpFirstDay = 6;
for (int i = 1; i < 7; i++)
{
for (int j = 0; j < 7; j++)
{
mCaleLab[i, j].Text = "";
mCaleLab[i, j].BorderStyle = BorderStyle.None;
mCaleLab[i, j].ForeColor = SystemColors.ControlText;
mCaleLab[i, j].BackColor = SystemColors.ButtonFace;
mCaleLab[i, j].Font = new Font(mCaleLab[i, j].Font, FontStyle.Regular);
}
}
for (int i = 1; i < 7; i++)
{
if (x > tmpMaxDays)
{
tmpLastRow = --i;
break;
}
for (int j = i == 1 ? tmpFirstDay : 0; j < 7; j++)
{
if (++x > tmpMaxDays)
{
tmpLastCol = j;
break;
}
mCaleLab[i, j].Text = Convert.ToString(x);
if (DateTime.Parse(string.Format("{0}-{1}-{2}", pYear, pMonth, x)) == DateTime.Today)
{
mCaleLab[i, j].BackColor = mTodayBackColor;
mCaleLab[i, j].Font = new Font(mCaleLab[i, j].Font, FontStyle.Bold);
}
if (DateTime.Parse(string.Format("{0}-{1}-{2}", pYear, pMonth, x)) == DateTime.Parse(string.Format("{0}-{1}-{2}", pYear, pMonth, pDay)))
{
mCaleLab[i, j].BorderStyle = BorderStyle.FixedSingle;
mOldDate = (string)mCaleLab[i, j].Tag;
}
}
mCurDate = new DateTime(pYear, pMonth, pDay);
}
tmpMaxDays = DateTime.DaysInMonth(pMonth == 1 ? pYear - 1 : pYear, pMonth == 1 ? 12 : pMonth - 1);
tmpDays = tmpMaxDays - tmpFirstDay;
if (--tmpFirstDay >= 0)
for (int i = tmpMaxDays; i >= tmpDays; i--)
{
mCaleLab[1, tmpFirstDay].Text = i.ToString();
mCaleLab[1, tmpFirstDay].ForeColor = mOtherDayForeColor;
if (--tmpFirstDay < 0) break;
}
x = 0;
for (int i = tmpLastRow; i < 7; i++)
{
for (int j = i == tmpLastRow ? tmpLastCol : 0; j < 7; j++)
{
mCaleLab[i, j].Text = Convert.ToString(++x);
mCaleLab[i, j].ForeColor = mOtherDayForeColor;
}
}
}
private void OnDoubleClick(object sender, EventArgs e)
{
}
private void OnCaleLabClick(object sender, EventArgs e)
{
mLbClk = true;
string tmpCurIndex = "1,0";
tmpCurIndex = (string)((Label)sender).Tag;
if (CM.GetCode(tmpCurIndex, ",") == "0") return;
if (mCaleLab[Convert.ToInt16(CM.GetCode(tmpCurIndex, ",")), Convert.ToInt16(CM.GetName(tmpCurIndex, ","))].ForeColor == mOtherDayForeColor)
{
if (CM.GetCode(tmpCurIndex, ",") == "1")
{
if (comboBox1.SelectedIndex == 0)
comboBox2.SelectedIndex--;
if (comboBox1.SelectedIndex == 0)
comboBox1.SelectedIndex = 11;
else
comboBox1.SelectedIndex--;
}
else
{
if (comboBox1.SelectedIndex == 11)
comboBox2.SelectedIndex++;
if (comboBox1.SelectedIndex == 11)
comboBox1.SelectedIndex = 0;
else
comboBox1.SelectedIndex++;
}
SelectDay(comboBox2.SelectedIndex + mBeginYear, comboBox1.SelectedIndex + 1, Convert.ToInt16(((Label)sender).Text));
mOldDate = tmpCurIndex;
}
else
{
mCaleLab[Convert.ToInt16(CM.GetCode(mOldDate, ",")), Convert.ToInt16(CM.GetName(mOldDate, ","))].BorderStyle = BorderStyle.None;
mOldDate = tmpCurIndex;
mCaleLab[Convert.ToInt16(CM.GetCode(mOldDate, ",")), Convert.ToInt16(CM.GetName(mOldDate, ","))].BorderStyle = BorderStyle.FixedSingle;
}
mLbClk = false;
}
private void OnMouseLeave(object sender, EventArgs e)
{
Label tmpLab = (Label)sender;
tmpLab.BorderStyle = BorderStyle.None;
}
private void OnMouseHover(object sender, EventArgs e)
{
Label tmpLab = (Label)sender;
tmpLab.BorderStyle = BorderStyle.FixedSingle;
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
mLbClk = true;
comboBox1.SelectedIndex = DateTime.Parse(linkLabel1.Text).Month - 1;
comboBox2.SelectedIndex = DateTime.Parse(linkLabel1.Text).Year - mBeginYear;
SelectDay(DateTime.Parse(linkLabel1.Text));
mLbClk = false;
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (mLbClk) return;
SelectDay(mBeginYear + comboBox2.SelectedIndex, comboBox1.SelectedIndex + 1, 1);
}
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
if (mLbClk) return;
SelectDay(mBeginYear + comboBox2.SelectedIndex, comboBox1.SelectedIndex + 1, 1);
}
private void button4_Click(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex != comboBox1.Items.Count - 1)
comboBox1.SelectedIndex = comboBox1.SelectedIndex + 1;
}
private void button3_Click(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex != 0)
comboBox1.SelectedIndex = comboBox1.SelectedIndex - 1;
}
#endregion
public Calendar()
{
InitializeComponent();
}
private void Calendar_Load(object sender, EventArgs e)
{
mRsz = true;
this.Size = new Size(175, 239);
InitControl();
mRsz = false;
}
private void Calendar_Resize(object sender, EventArgs e)
{
if (mRsz) return;
mRsz = true;
//180
this.Size = new Size(175,180);
if (panel2.Visible)
this.Size = new Size(175, this.Size.Height + panel2.Height);
if (panel4.Visible)
{
panel4.Top = panel2.Visible ? panel2.Height : 0 + 180;
this.Size = new Size(175, this.Size.Height + panel4.Height);
}
mRsz = false;
}
private void panel4_Paint(object sender, PaintEventArgs e)
{
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using CommCode;
#endregion
namespace STextBox
{
public partial class Calendar : UserControl
{
Variable declare#region Variable declare
public bool ShowSelectBar
{
get
{
return panel2.Visible;
}
set
{
panel2.Visible = value;
Calendar_Resize(this, new EventArgs());
}
}
public bool ShowActionButton
{
get
{
return button5.Visible;
}
set
{
button5.Visible = value;
button6.Visible = value;
}
}
public bool ShowActionBar
{
get
{
return panel4.Visible;
}
set
{
panel4.Visible = value;
Calendar_Resize(this, new EventArgs());
}
}
Label[,] mCaleLab = new Label[7, 7];
DateTime mCurDate = DateTime.Now;
public DateTime Value
{
get
{
return mCurDate;
}
}
Color mWeekDayBackColor = Color.BlueViolet;
public Color WeekDayBackColor
{
get
{
return mWeekDayBackColor;
}
set
{
mWeekDayBackColor = value;
}
}
Color mWeekDayForeColor = Color.White;
public Color WeekDayForeColor
{
get
{
return mWeekDayForeColor;
}
set
{
mWeekDayForeColor = value;
}
}
Color mSelectDayBackColor = Color.WhiteSmoke;
public Color SelectDayBackColor
{
get
{
return mSelectDayBackColor;
}
set
{
mSelectDayBackColor = value;
}
}
Color mSelectDayForeColor = Color.Black;
public Color SelectDayForeColor
{
get
{
return mSelectDayForeColor;
}
set
{
mSelectDayForeColor = value;
}
}
Color mOtherDayForeColor = Color.Gray;
public Color OtherDayForeColor
{
get
{
return mOtherDayForeColor;
}
set
{
mOtherDayForeColor = value;
}
}
Color mOtherDayBackColor = SystemColors.ButtonFace;
public Color OtherDayBackColor
{
get
{
return mOtherDayBackColor;
}
set
{
mOtherDayBackColor = value;
}
}
Color mTodayBackColor = Color.MediumSlateBlue;
public Color TodayBackColor
{
get
{
return mTodayBackColor;
}
set
{
mTodayBackColor = value;
}
}
string mOldDate = "1,0";
bool mInit = true;
bool mLbClk = false;
int mBeginYear = 0;
int mEndYear = 0;
bool mRsz = false;
#endregion
Control core#region Control core
private void InitControl()
{
int x = 0;
mInit = true;
mBeginYear = mCurDate.Year - 20;
mEndYear = mCurDate.Year + 20;
string[] tmpWeekDayName ={
"日","一","二","三","四","五","六"
};
string[] tmpMonthName = {
"一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"
};
for (int i = 0; i < 12; i++)
{
comboBox1.Items.Add(tmpMonthName[i]);
}
comboBox1.SelectedIndex = mCurDate.Month - 1;
for (int i = mBeginYear; i <= mEndYear; i++)
{
comboBox2.Items.Add(i.ToString() + '年');
x++;
if (i == mCurDate.Year) comboBox2.SelectedIndex = x - 1;
}
x = 0;
int tmpWidth = 25;//flowLayoutPanel1.Width / 7;
int tmpHeight = 25;//flowLayoutPanel1.Height / 5;
for (int i = 0; i < 7; i++)
{
for (int j = 0; j < 7; j++)
{
mCaleLab[i, j] = new Label();
mCaleLab[i, j].Visible = true;
mCaleLab[i, j].AutoSize = false;
mCaleLab[i, j].Parent = panel3;
mCaleLab[i, j].Width = tmpWidth;
mCaleLab[i, j].Height = tmpHeight;
mCaleLab[i, j].TextAlign = ContentAlignment.MiddleCenter;
mCaleLab[i, j].Top = (i % 7) * tmpHeight;
mCaleLab[i, j].Left = (j % 8) * tmpWidth;
mCaleLab[i, j].Tag = string.Format("{0},{1}", i, j);
if (i == 0)
{
mCaleLab[i, j].Text = tmpWeekDayName[j];
mCaleLab[i, j].BackColor = mWeekDayBackColor;
mCaleLab[i, j].ForeColor = mWeekDayForeColor;
}
mCaleLab[i, j].Click += new EventHandler(OnCaleLabClick);
mCaleLab[i, j].DoubleClick += new EventHandler(OnDoubleClick);
}
}
label2.BackColor = mTodayBackColor;
linkLabel1.Text = mCurDate.ToShortDateString();
mInit = false;
SelectDay(DateTime.Now);
}
private void SelectDay(DateTime pDateTime)
{
SelectDay(pDateTime.Year, pDateTime.Month, pDateTime.Day);
}
private void SelectDay(int pYear, int pMonth, int pDay)
{
if (mInit) return;
int tmpMaxDays = 31;
int tmpFirstDay = 0;
int tmpDays = 0;
int tmpLastRow = 0;
int tmpLastCol = 0;
int x = 0;
tmpMaxDays = DateTime.DaysInMonth(pYear, pMonth);
tmpFirstDay = (int)(new DateTime(pYear, pMonth, 1)).DayOfWeek;
tmpLastRow = 6;
if (tmpFirstDay < 0) tmpFirstDay = 6;
for (int i = 1; i < 7; i++)
{
for (int j = 0; j < 7; j++)
{
mCaleLab[i, j].Text = "";
mCaleLab[i, j].BorderStyle = BorderStyle.None;
mCaleLab[i, j].ForeColor = SystemColors.ControlText;
mCaleLab[i, j].BackColor = SystemColors.ButtonFace;
mCaleLab[i, j].Font = new Font(mCaleLab[i, j].Font, FontStyle.Regular);
}
}
for (int i = 1; i < 7; i++)
{
if (x > tmpMaxDays)
{
tmpLastRow = --i;
break;
}
for (int j = i == 1 ? tmpFirstDay : 0; j < 7; j++)
{
if (++x > tmpMaxDays)
{
tmpLastCol = j;
break;
}
mCaleLab[i, j].Text = Convert.ToString(x);
if (DateTime.Parse(string.Format("{0}-{1}-{2}", pYear, pMonth, x)) == DateTime.Today)
{
mCaleLab[i, j].BackColor = mTodayBackColor;
mCaleLab[i, j].Font = new Font(mCaleLab[i, j].Font, FontStyle.Bold);
}
if (DateTime.Parse(string.Format("{0}-{1}-{2}", pYear, pMonth, x)) == DateTime.Parse(string.Format("{0}-{1}-{2}", pYear, pMonth, pDay)))
{
mCaleLab[i, j].BorderStyle = BorderStyle.FixedSingle;
mOldDate = (string)mCaleLab[i, j].Tag;
}
}
mCurDate = new DateTime(pYear, pMonth, pDay);
}
tmpMaxDays = DateTime.DaysInMonth(pMonth == 1 ? pYear - 1 : pYear, pMonth == 1 ? 12 : pMonth - 1);
tmpDays = tmpMaxDays - tmpFirstDay;
if (--tmpFirstDay >= 0)
for (int i = tmpMaxDays; i >= tmpDays; i--)
{
mCaleLab[1, tmpFirstDay].Text = i.ToString();
mCaleLab[1, tmpFirstDay].ForeColor = mOtherDayForeColor;
if (--tmpFirstDay < 0) break;
}
x = 0;
for (int i = tmpLastRow; i < 7; i++)
{
for (int j = i == tmpLastRow ? tmpLastCol : 0; j < 7; j++)
{
mCaleLab[i, j].Text = Convert.ToString(++x);
mCaleLab[i, j].ForeColor = mOtherDayForeColor;
}
}
}
private void OnDoubleClick(object sender, EventArgs e)
{
}
private void OnCaleLabClick(object sender, EventArgs e)
{
mLbClk = true;
string tmpCurIndex = "1,0";
tmpCurIndex = (string)((Label)sender).Tag;
if (CM.GetCode(tmpCurIndex, ",") == "0") return;
if (mCaleLab[Convert.ToInt16(CM.GetCode(tmpCurIndex, ",")), Convert.ToInt16(CM.GetName(tmpCurIndex, ","))].ForeColor == mOtherDayForeColor)
{
if (CM.GetCode(tmpCurIndex, ",") == "1")
{
if (comboBox1.SelectedIndex == 0)
comboBox2.SelectedIndex--;
if (comboBox1.SelectedIndex == 0)
comboBox1.SelectedIndex = 11;
else
comboBox1.SelectedIndex--;
}
else
{
if (comboBox1.SelectedIndex == 11)
comboBox2.SelectedIndex++;
if (comboBox1.SelectedIndex == 11)
comboBox1.SelectedIndex = 0;
else
comboBox1.SelectedIndex++;
}
SelectDay(comboBox2.SelectedIndex + mBeginYear, comboBox1.SelectedIndex + 1, Convert.ToInt16(((Label)sender).Text));
mOldDate = tmpCurIndex;
}
else
{
mCaleLab[Convert.ToInt16(CM.GetCode(mOldDate, ",")), Convert.ToInt16(CM.GetName(mOldDate, ","))].BorderStyle = BorderStyle.None;
mOldDate = tmpCurIndex;
mCaleLab[Convert.ToInt16(CM.GetCode(mOldDate, ",")), Convert.ToInt16(CM.GetName(mOldDate, ","))].BorderStyle = BorderStyle.FixedSingle;
}
mLbClk = false;
}
private void OnMouseLeave(object sender, EventArgs e)
{
Label tmpLab = (Label)sender;
tmpLab.BorderStyle = BorderStyle.None;
}
private void OnMouseHover(object sender, EventArgs e)
{
Label tmpLab = (Label)sender;
tmpLab.BorderStyle = BorderStyle.FixedSingle;
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
mLbClk = true;
comboBox1.SelectedIndex = DateTime.Parse(linkLabel1.Text).Month - 1;
comboBox2.SelectedIndex = DateTime.Parse(linkLabel1.Text).Year - mBeginYear;
SelectDay(DateTime.Parse(linkLabel1.Text));
mLbClk = false;
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (mLbClk) return;
SelectDay(mBeginYear + comboBox2.SelectedIndex, comboBox1.SelectedIndex + 1, 1);
}
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
if (mLbClk) return;
SelectDay(mBeginYear + comboBox2.SelectedIndex, comboBox1.SelectedIndex + 1, 1);
}
private void button4_Click(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex != comboBox1.Items.Count - 1)
comboBox1.SelectedIndex = comboBox1.SelectedIndex + 1;
}
private void button3_Click(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex != 0)
comboBox1.SelectedIndex = comboBox1.SelectedIndex - 1;
}
#endregion
public Calendar()
{
InitializeComponent();
}
private void Calendar_Load(object sender, EventArgs e)
{
mRsz = true;
this.Size = new Size(175, 239);
InitControl();
mRsz = false;
}
private void Calendar_Resize(object sender, EventArgs e)
{
if (mRsz) return;
mRsz = true;
//180
this.Size = new Size(175,180);
if (panel2.Visible)
this.Size = new Size(175, this.Size.Height + panel2.Height);
if (panel4.Visible)
{
panel4.Top = panel2.Visible ? panel2.Height : 0 + 180;
this.Size = new Size(175, this.Size.Height + panel4.Height);
}
mRsz = false;
}
private void panel4_Paint(object sender, PaintEventArgs e)
{
}
}
}
一个函数库,现在还只有很少的一部分函数
namespace CommCode
{
/**//// <summary>
/// 通用方法
/// </summary>
public static class CM
{
名称编码处理#region 名称编码处理
/**//// <summary>
/// 解析编码字串
/// </summary>
/// <param name="pParseString">完整字串,格式:"编码 名称"用空格分隔</param>
/// <returns>编码</returns>
public static string ParseIdSpc(string pParseString)
{
return GetCode(pParseString, " ");
}
/**//// <summary>
/// 解析名称字串
/// </summary>
/// <param name="pParseString">完整字串,格式:"编码 名称"用空格分隔</param>
/// <returns>名称</returns>
public static string ParseNameSpc(string pParseString)
{
return GetName(pParseString, " ");
}
/**//// <summary>
/// 解析编码字串
/// </summary>
/// <param name="pParseString">完整字串,格式:"[编码]名称"</param>
/// <returns>编码</returns>
public static string ParseId(string pParseString)
{
return GetCode(pParseString.Substring(1), "]");
}
/**//// <summary>
/// 解析名称字串
/// </summary>
/// <param name="pParseString">完整字串,格式:"[编码]名称"</param>
/// <returns>名称</returns>
public static string ParseName(string pParseString)
{
return GetName(pParseString.Substring(1), "]");
}
/**//// <summary>
/// 解析指定分隔符的编码
/// </summary>
/// <param name="pParseString">完整字串,格式:"编码%s名称"%s分隔符</param>
/// <param name="pSplitString">分隔符</param>
/// <returns>编码</returns>
public static string GetCode(string pParseString, string pSplitString)
{
if (pSplitString == "" || pParseString == "") return "";
return pParseString.Substring(0, pParseString.IndexOf(pSplitString));
}
/**//// <summary>
/// 解析指定分隔符的名称
/// </summary>
/// <param name="pParseString">完整字串,格式:"编码%s名称"%s分隔符</param>
/// <param name="pSplitString">分隔符</param>
/// <returns>名称</returns>
public static string GetName(string pParseString, string pSplitString)
{
if (pSplitString == "" || pParseString == "") return "";
return pParseString.Substring(pParseString.IndexOf(pSplitString)+1 );
}
#endregion
}
}
{
/**//// <summary>
/// 通用方法
/// </summary>
public static class CM
{
名称编码处理#region 名称编码处理
/**//// <summary>
/// 解析编码字串
/// </summary>
/// <param name="pParseString">完整字串,格式:"编码 名称"用空格分隔</param>
/// <returns>编码</returns>
public static string ParseIdSpc(string pParseString)
{
return GetCode(pParseString, " ");
}
/**//// <summary>
/// 解析名称字串
/// </summary>
/// <param name="pParseString">完整字串,格式:"编码 名称"用空格分隔</param>
/// <returns>名称</returns>
public static string ParseNameSpc(string pParseString)
{
return GetName(pParseString, " ");
}
/**//// <summary>
/// 解析编码字串
/// </summary>
/// <param name="pParseString">完整字串,格式:"[编码]名称"</param>
/// <returns>编码</returns>
public static string ParseId(string pParseString)
{
return GetCode(pParseString.Substring(1), "]");
}
/**//// <summary>
/// 解析名称字串
/// </summary>
/// <param name="pParseString">完整字串,格式:"[编码]名称"</param>
/// <returns>名称</returns>
public static string ParseName(string pParseString)
{
return GetName(pParseString.Substring(1), "]");
}
/**//// <summary>
/// 解析指定分隔符的编码
/// </summary>
/// <param name="pParseString">完整字串,格式:"编码%s名称"%s分隔符</param>
/// <param name="pSplitString">分隔符</param>
/// <returns>编码</returns>
public static string GetCode(string pParseString, string pSplitString)
{
if (pSplitString == "" || pParseString == "") return "";
return pParseString.Substring(0, pParseString.IndexOf(pSplitString));
}
/**//// <summary>
/// 解析指定分隔符的名称
/// </summary>
/// <param name="pParseString">完整字串,格式:"编码%s名称"%s分隔符</param>
/// <param name="pSplitString">分隔符</param>
/// <returns>名称</returns>
public static string GetName(string pParseString, string pSplitString)
{
if (pSplitString == "" || pParseString == "") return "";
return pParseString.Substring(pParseString.IndexOf(pSplitString)+1 );
}
#endregion
}
}