关于C#中winform的一些操作

:关于C#中的messagebox的使用:MessageBox函数MessageBox()函数MessageBox是标准的windows Api函数只能在CWnd类的继承类中使用,在C#中使用时,通常用MessageBox的show方法来实现对话框的弹出,命名空间System.Windows.Forms。

应用实例:MessageBox.Show("编程爱好者", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)

其中参数说明:1)对话框显示的内容  2)对话框的名称  3)对话框可以选择的按钮  4)对话框中图标的样式  5)对话框中默认选择的按钮     函数的返回值是DialogResult 类型的变量

3中对话框可以选择的按钮有MessageBoxButtons.OkCancelRetryAbortIgnore等。 4中对话框的样式有MessageBoxIcon.Question,有Asterisk,Information,Error,Stop,Warming,None等。          5中设置默认按钮主要是如果弹出对话框之后,直接回车选择的就是默认的那个按钮。

二:winform中的formClosing函数和formClosed函数:

FormClosing 在关闭前发生,即要关但未关时
FormClosed 在关闭后发生,已经关闭,但尚未交还内存控制权

之所以要这么安排,是为了让你有机会让你干预系统的默认行为
你可在 FormClosing 时反悔,让窗口不再关闭
你可在 FormClosed 时保存现场


closing可以弹出个确认是否关闭
closed在彻底关闭后处理掉线程资源什么的

 

FormClosing函数可以取消关闭窗口

FormClosed函数不能取消关闭窗口

private void form1_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult dr = MessageBox.Show("你确定要关闭此窗体么?","关闭提示",MessageBoxButtons.YesNo,MessageBoxIcon.Information);//触发事件进行提示
if (dr == DialogResult.No)
{
e.Cancel = true;//就不退了
}
else {
e.Cancel = false;//退了
}
}

三:如果在button1_Click函数体中写form1_FormClosing(null,null);则会执行form1_FormClosing函数中执行的东西,但是不会把窗口关闭。

如果使用FormClosingEventHandler,可以实现挂载,比如在formLoad函数中添加this.FormClosing += new FormClosingEventHandler(this.button1_Click);可以实现当关闭窗口的时候,执行完formClosing函数的内容后执行button1_Click的内容。

四:winform中datatable添加行和列:添加列两种方式:

dt.Columns.Add("Name", typeof(string)); //数据类型为 文本
DataColumn age = new DataColumn("Age", typeof(Int32));   //数据类型为 整形
DataColumn Time = new DataColumn("Time", typeof(DateTime)); //数据类型为 时间
dt.Columns.Add(age);
dt.Columns.Add(Time);

添加行:

//1、通过行框架添加
dt.Rows.Add("李四",25,DateTime.Now);//Add你们参数的数据顺序要和dt中的列顺对应
DataRow dr1 = dt.NewRow();
dt.Rows.Add(dr1);

 //2、添加空行
 dt.Rows.Add();

 //3、添加数据行
 DataRow dr2 = dt.NewRow();
 dr2[0] = "张三"; //通过索引赋值
 dr2[1] = 23;
 dr2["Time"] = DateTime.Now;//通过名称赋值
 dt.Rows.Add(dr2);

 
/添加一新列,其值为默认值
DataColumn dc2 = new DataColumn("Sex", typeof(string));
dc2.DefaultValue = "男";
dc2.AllowDBNull = false;//这在创建表的时候,起作用,在为已有表新增列的时候,不起作用
vTable.Columns.Add(dc2);

假设dt是从数据库中直接读取的结果,返回一个datatable,可以使用dt.select 进行查询和模糊查询

DataRow[] drArr1 = dt.Select("C1 LIKE 'abc%'");//模糊查询(如果的多条件筛选,可以加 and 或 or )
DataRow[] drArr2 = dt.Select("'abc' LIKE C1 + '%'", "C2 DESC");//另一种模糊查询的方法
DataRow[] drArr3 = dt.Select("C1='abc'", "C2 DESC");//排序

注意:datatable中的clone方法,是复制表的结构,不复制内容

DataTable dtNew1 = tbldatas.Clone();
            for (int i = 0; i < dtArr.Length; i++)
            {
                dtNew1.ImportRow(dtArr[i]);//使用ImportRow将select选出的datarow数组放到新的datatable中
            }

下面这一行代码是将datatable中的指定列提取出来放在一个新的datatable中

DataTable dtNew = tbldatas.DefaultView.ToTable(false, new string[] { "id", "name" });

下面是按照datatable中的指定列排序:

 DataTable dtCopy = dt.Copy();

            DataView dv = dt.DefaultView;
            dv.Sort = "ID";
            dtCopy = dv.ToTable();

http://www.cnblogs.com/vaevvaev/p/6899165.html

五:往数据库插入数据提示“将截断字符串或二进制数据”的错误:原因是数据库中表中的列定义的长度太小比如varchar(10),而datatable中的大小太大,从而出现将截断的错误

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值