C#语言知识积累

(1)DGV中数据居中属性:
属性-杂项-Columns-选定列-列属性-DefaultCellStyle-布局-Alignment-MiddleCenter
(2)设置窗体的显示位置和大小
 
 //窗体加载事件
        private void GetTime_Load(object sender, EventArgs e)
        {
            this.StartPosition = FormStartPosition.Manual;//先将其设置为“可手工调动的”
            this.Location = new Point(250, 250);//设置窗体的位置(坐标显示)
            this.Size = new Size(541, 219);//设置窗体的尺寸(坐标显示)
        }
 (3)属性设置:
  窗体中全屏显示 WindowState  : Maximized
  窗体中控件和窗体一样大  Anchor : Top, Bottom, Left, Right(特别注意容器框的该属性设置)
 
 
(4)在写程序时正常是使用
Cursor.Current = Cursors.WaitCursor;  和   Cursor.Current = Cursors.Default;
我之前一直都没注意
现在发现在等待时间比较长,中间光标还在转圈的时候
我一阵狂点其他按钮,居然是有反应的,点多了我造成我系统内存溢出
(5)获取DGV中的单元格的列和行
 //确定单元格的列
this.DGV_TeShuXuQiu.Columns[e.ColumnIndex].Name ="ShanChu";
this.DGV_TeShuXuQiu.CurrentCell.ColumnIndex ==3;

//确定单元格的行
this.DGV_TeShuXuQiu.CurrentCell.RowIndex=1;
 (6)删除DGV中的某一行
 this.DGV_TeShuXuQiu.Rows.RemoveAt(e.RowIndex);//删除行
 (7)正则表达式
 #region 身份证号码输入的控制
        //TextBox事件
        private void txtShenFenZhengHao_Leave(object sender, EventArgs e)
        {
            //*修改 标准身份证号正则表达式
            if (Regex.IsMatch(txtShenFenZhengHao.Text, @"^(^d{15}$|^d{17}(d|X|x))$", RegexOptions.IgnoreCase))
            {
                txtShenFenZhengHao.Text = txtShenFenZhengHao.Text.ToString().ToUpper();
            }
            else
            {
                MessageBox.Show("请输入正确的身份证号!");
                txtShenFenZhengHao.Focus();
            }
        }
        #endregion
 (8)设置输入的形式,如只能输入数字
#region 控制txtShenFenZhengHao只能输入中文和英文
        private void txtShenFenZhengHao_KeyPress(object sender, KeyPressEventArgs e)
        {
            NumberEnglish_Purview(txtShenFenZhengHao, e);

        }
 #region 控制只能输入英文和数字
        public void NumberEnglish_Purview(TextBox TextBox, KeyPressEventArgs e)
        {
            if ((e.KeyChar >= 48 && e.KeyChar <= 57))
            {
                e.Handled = false;
            }
            else if (e.KeyChar >= 65 && e.KeyChar <= 90)
            {
                e.Handled = false;
            }
            else if ((e.KeyChar >= 97 && e.KeyChar <= 122))
            {
                e.Handled = false;
            }
            else if (e.KeyChar == 8)
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }
        #endregion
 (9)正则表达式进行匹配
using System.Text.RegularExpressions;
       private void DGV_TeShuXuQiu_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            if (this.DGV_TeShuXuQiu.Columns[e.ColumnIndex].Name == "RenShu")
            {
                 Regex objNotNumberPattern = new Regex("^\d{1}|\d{1}$");//正则表达式匹配两位数字
                 if (!objNotNumberPattern.IsMatch(this.DGV_TeShuXuQiu.CurrentRow.Cells["RenShu"].Value.ToString()))
                 {
                     MessageBox.Show("请输入1位或者2位数字!");
                 }
            }
        }
(10)C#语言中发送电子邮件可以参考ERP中的DingDan_Operate中的提交事件中的SendMsg函数以及Common.public_method.SendStrMail
 (11)定义一个表,并给表添加列然后赋值。存入多个员工的ID和名称,然后再将dt_YuanGong_ID_Name中的值赋给DGV
  private void tsBtn_QueDingXuanZe_Click(object sender, EventArgs e)
        {
            dt_HuShi_ID_Name = new DataTable();
            //给表dt_HuShi_ID_Name添加字段
            dt_HuShi_ID_Name.Columns.Add("YuanGongID", typeof(System.Int32));
            dt_HuShi_ID_Name.Columns.Add("XingMing", typeof(System.String));
            //给表中列赋值
            for(int i=0;i<this.dgv_HuShiXinXi.Rows.Count;i++)
            {
                if ((bool)this.dgv_HuShiXinXi.Rows[i].Cells["XuanDing"].EditedFormattedValue == true)
                {
                    DataRow rows = dt_HuShi_ID_Name.NewRow();
                    rows["YuanGongID"] = Convert.ToInt32(this.dgv_HuShiXinXi.Rows[i].Cells["YuanGongID"].Value.ToString());
                    rows["XingMing"] = this.dgv_HuShiXinXi.Rows[i].Cells["XingMing"].Value.ToString().Trim();
                    dt_HuShi_ID_Name.Rows.Add(rows);
                }
            }
            this.Close();
        }
                //给DGV赋值
            DataTable dt_YuanGong_ID_Name = new DataTable();
            dt_YuanGong_ID_Name=JiChuXinXi.UIL_JiChuXinXi.HuShiGuanLi_HuShiXinXi.dt_HuShi_ID_Name;
            for (int i = 0; i < dt_YuanGong_ID_Name.Rows.Count; i++)
            {
                this.DGV_PaiBan.Rows.Add();
                this.DGV_PaiBan.Rows[i].Cells["HuShiMingCheng"].Value = dt_YuanGong_ID_Name.Rows[i]["XingMing"].ToString().Trim();
                this.DGV_PaiBan.Rows[i].Cells["HuShiID"].Value = dt_YuanGong_ID_Name.Rows[i]["YuanGongID"].ToString().Trim();
            }
 (12)复制一个字符串到另一个字符串,可以使用string的静态方法Copy
 例如:
string dest = "Hello world";
string source = "Goodbye China";
char[] destArray = dest.ToCharArray();//将dest变成字符数组
source.CopyTo(8, destArray, 6, 5);//从source的第8个字符起复制5个字符并从destArray的第6个位置开始放
dest = new string(destArray);//这时dest为"Hello China"
 
原文地址:https://www.cnblogs.com/zhangyonglvdaomei/p/3372854.html