• c#编程经验


     1. 单引号表示单个字符,双引号表示多个字符
    2. Response.Write("<script language=javascript>window.alert('" + ls_ts+ "');</script>"); //显示提示框
       confirm()  //可以出来两个按钮   this.deleteButton.Attributes.Add("onClick", "return ConfirmDeletion();");
       prompt()      //可以弹出输入框
       var aa = window.document.getElementsByName.getElementById("Button1"); //获取网页的元素_客户端控件
       var ksrq = document.getElementById('<%= TextBox_ksrq.ClientID %>');   //获取网页的元素_服务端控件
       //UpdatePanel 提示
       ScriptManager.RegisterStartupScript(theUpdatePanel, typeof(UpdatePanel), "scriptName", "alert('Time updated!')", true);
    2. asp.net 动态Master页面
         protected void Page_PreInit(object sender, EventArgs e)
        {

        }

    3. Response.Write("<script language=javascript>window.open('test.aspx');</script>"); //打开新窗口
       Response.Write("<script language=javascript>location.href('test.aspx');</script>"); //打开新窗口
       Response.Write("<scriptlanguage=javascript>window.open('WebForm2.aspx','_self','');</script>");
       Response.Write("<script language=javascript>window.open('" + ls_ym + "','contents');</script>"); //打开新窗口
       Response.Write("<script language=javascript>window.close();</script>"); //关闭新窗口
     窗口特性 (即是打开的浏览器的样子) 的关键字、关键字值可以参考下表: (逗号分割)
    中午或者晚上 我有时间
    是否显示工具栏:toolbar[=yes|no]|[=1|0]
    是否显示地址栏:location[=yes|no]|[=1|0]
    是否显示前进、后退、刷新按钮:directories[=yes|no]|[=1|0]
    是否显示状态栏:status[=yes|no]|[=1|0]
    是否显示菜单栏:menubar[=yes|no]|[=1|0]
    是否显示滚动条:scrollbars[=yes|no]|[=1|0]
    用户是否可以改变窗口的大小:resizable[=yes|no]|[=1|0]
    是否在新窗口中保留浏览器的浏览历史纪录:copyhistory[=yes|no]|[=1|0]
    窗口的宽度 (单位为像素):width=pixels
    窗口的高度 (单位为像素):height=pixels

    4. 窗口第一次打开
       if (!IsPostBack)  {}
    5. 实例化类
       Class1 sas=new Class1();  string is_conn ; is_conn  = sas.Class2();
    6. 在某个单词地后面按住alt 键,再按向右地键 字母中的小写(单词首个字母)会变成大写字母 
    7. SqlConnection my_sql = new SqlConnection(connectstring);
       SqlConnection 是区分大小写的
    8. {}的用法 //每个语句块都要用{}来表示

    9. 如何分页
     
        在事件MyDataGrid_PageIndexChanged 中
         MyDataGrid.CurrentPageIndex = e.NewPageIndex; //
     Button1_Click(this,new System.EventArgs()); //调用另外一个按钮的代码

    10.  label 控件在赋值的时候,可以形成多行

    11. 在类里面如何显示提示框Response.Write("<script language=javascript>window.alert('000');</script>"); //显示提示框
       
         需要引用:  public class wz_DropDownList  :System.Web.UI.Page

    12. 对字符串去除空格

         ls_str.Trim()

    13.  和(and)  用 & 表示,  或(or)  用 |表示

    14. 对字符串判断空值 ls_str == null   不等于 ls_str != null

    15. 如何保存全局变量

       通过用Session   对象  例如: Session["aaa"] = "333"
       if (Session["is_str"] == null)
        {
                      Session["is_str"] = 0;
        }

    16. 获取web的相对路径:  aaa = Request.ApplicationPath;

    17. 排序(在datagrid 中设置排序表达式  如;  s_bh ASC 或  s_bh  DESC )
     
    18. 赋予excel 文件的权限

      开始->运行->"dcomcnfg"->在应用程序列表框中选择“Microsoft Excel 应用程序”->
    “安全性”->选择“使用自定义访问权限”,点击“编辑”按钮
    添加本地“ASPNET”用户,权限为“允许访问”
    “安全性”->选择“使用自定义启动权限”,点击“编辑”按钮
    添加本地“ASPNET”用户,权限为“允许访问”

    如果还不行,就“使用自定义配置权限”,添加或修改相应用户的权限
    ///////////
    最后,来看一下,如何调用客户端的Excel进行打印,就是让客户一点击"打印"的按钮,就可以自动打开客户端的Excel,将要打印的内容导入。要实现这样的效果,必须要求客户端的IE浏览器设置中,在其中的"安全-本地Intranet-自定义级别中",将"下载未签名ACTIVX"中设置为启动或提示。代码如下:
    /////////


    19. 导出到excel<web> (一种简单的方法)

        public void ExportToExcel(System.Web.UI.Control ctl)
      {
       bool CurrCtlVisible=ctl.Visible;
       ctl.Visible=true;        Response.AppendHeader("Content-Disposition","attachment;filename=Excel.xls"); 
       Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
       Response.ContentType = "application/ms-excel";
       ctl.Page.EnableViewState = false;
       System.IO.StringWriter tw = new System.IO.StringWriter();
       System.Web.UI.HtmlTextWriter hw = new HtmlTextWriter(tw);
       ctl.RenderControl(hw);
       Response.Write(tw.ToString());
       Response.End();
         ctl.Page.EnableViewState = true;
       ctl.Visible=CurrCtlVisible;
      }

          //有的时候,字符会变成数字,需要作一下处理

    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
      {
       if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
       {
        e.Item.Cells[1].Attributes.Add("style","vnd.ms-excel.numberformat:@");
        
       }


      }

    20. 重定向(在本页面的位置上指向一个新的页面)

       Response.Redirect( "WebForm2.aspx?id=" + e.Item.Cells[0].Text );

    21. datagrid 添加记录

        允许datagrid  显示页尾

       在模版列中的下面增加一个按钮,它的name = "一个值",在html 中,增加这个控件的属性
       enabled = '<%# islastpage() %>'
        再在islastpage() 函数中增加判断( 当前页 = 页的总数)
       在datagrid 的事件(ItemCommand)  中写关于点击按钮的操作


    22. datagrid 的模版列的建立

        在datagrid 的ItemCreated 事件中写关于建立页面控件与模版中的控件关联的语法

    23. pb的datawindow 在net 中的用法
        <连接>
        dbms = oledb,servername = "计算机名字",useid = sa,dbparameter =  PROVIDER='SQLOLEDB',PROVIDERSTRING='database=ywgl'
        <存盘>
       System.Data.SqlClient.SqlConnection theConnection = new               System.Data.SqlClient.SqlConnection();
       theConnection.ConnectionString = "Data Source=adserver;Initial Catalog=ywgl;User ID=sa;";
       theConnection.Open();
       Sybase.DataWindow.AdoTransaction SQLCA = new Sybase.DataWindow.AdoTransaction(theConnection,              "Isolation='RU'");
       SQLCA.BindConnection();
       SQLCA.Transaction = SQLCA.Connection.BeginTransaction(IsolationLevel.ReadUncommitted);
        dw_data.SetTransaction(SQLCA);
        dw_data.UpdateData(true, false);
        SQLCA.Transaction.Commit();
        dw_data.RestoreDataCache();
        dw_data.RestoreContext();
        dw_data.Retrieve();
        
    24. 添加框架集

         <frameset cols="196,*" border="0" frameSpacing="0" frameBorder="0">
    <frame name="main" src="" scrolling="no">
    <frame name="contents" src="" scrolling="auto" frameBorder="yes">
    </frameset>

    25. 设置asp.net 的事务级别

        SqlTransaction ls_trans = is_connect.BeginTransaction(System.Data.IsolationLevel.ReadUncommitted);

    26. JavaScript函数的定义
        <script language="JavaScript">
               function myfunction(){
                   alert("这是JS脚本调用的函数");
                 }
        </script>

    27. 在asp.net 中动态调用JavaScript函数(删除)

             Button1.Attributes.Add("onClick", "return my_aaa()");
             Button1.Attributes.Add("onClick", "return  window.confirm('删除后不能恢复,真的要对订阅数据进行清理吗?')");

              ///////////////下面是JavaScript函数//return 很重要
      <script language="JavaScript">
                        function my_aaa(){return  window.confirm("ccc")} </script>

    27.   确认框的出现
           Literal1.Text = "<script language=javascript>document.all.TextBox1.value=my_aaa();</script>";
           document.Form1.控件的id
           Literal1 是占位符,要出现在控件的后面(代码位置)


    28. JavaScript函数 alert 的单引号的问题的解决:

       ls_sql = ls_sql + "<script language=javascript> window.alert(";
       ls_sql = ls_sql +'"';
       ls_sql = ls_sql + aaa;
       ls_sql = ls_sql +'"';
              ls_sql = ls_sql + " ); </script> ";

    29. xml (从字符串中读入,导出到字符串)

       using System.Xml;
       using System.IO;
      
       ///读入

       string xmlText = "<newdatset><aaa><eee>004</eee></aaa></newdatset>";
           StringReader strReader = new StringReader(xmlText);
              
          XmlTextReader xtr = new XmlTextReader(strReader);

      

    //   XmlTextReader xtr = new XmlTextReader(@"d:\bbb.xml");
                xtr.WhitespaceHandling = WhitespaceHandling.None;
       XmlDocument xd = new XmlDocument();
       xd.Load(xtr);

    ////导出

        string strReader11 = "";
      strReader11 = xd.OuterXml;

    30.  日期控件(梅花雨)

        用记事本打开js文件,然后另存为时候用编码:utf-8即可!

       使用方法:  1. 添加引用: <script language="JavaScript" src="../js/date.js"></script>
                  2. <input name="txt" id="rq_select" runat="server"><input type="button"                  value="setday"   onclick="setday(this,document.all.txt)">  //
                        将第二个添加到html的from中即可
      

    31. 列名转换

        select  aaa as s_lm1 from aaa  //aaa为实际的列名,s_lm1 为虚拟的列名

    32.    数据库记录导出到xml 文件
     
                            DataSet mydataset = new DataSet();
       SqlConnection myconnection = new SqlConnection();
       myconnection.ConnectionString = "server=adserver;database=ywgl;User ID=ad_dbo;password=ad_dbo";
       myconnection.Open();
       string  ls_sql ="select * from aaa";
       SqlDataAdapter mycommand = new SqlDataAdapter(ls_sql,myconnection);
       mycommand.Fill(mydataset,"aaa");
       //
       DataGrid1.DataSource = mydataset.Tables[0].DefaultView;
       DataGrid1.DataBind();
       mydataset.WriteXmlSchema(Server.MapPath("aaa.xsd"));

       mydataset.WriteXml(Server.MapPath("aaa.xml"),XmlWriteMode.IgnoreSchema);

    33.   xml 文件内容更新数据库

    34.   java 函数操作页面控件的属性

      document.all.TextBox1.value="sss"; (要把这句话放在控件的后面)  
      document.Form1.TextBox1.value="sss"; (要把这句话放在控件的后面)  
       
    35. 定义程序入口点

        /// <summary>
      /// 应用程序的主入口点。
      /// </summary>
      [STAThread]
      static void Main()
      {
       Application.Run(new Form1());
      }


      36. 类型转换   (从字符串转成数字)

                        double aaa = 32.23;
       string sss = "22.22";
       aaa = double.Parse(sss);或者 aaa = Convert.ToDouble(sss);

    37. asp.net 在什么地方调用出错地页面(统一)

        在web.config 的设置中

        <customErrors defaultRedirect="error.aspx"

        mode="On"
        />

    38. 在.net 如何从一个页面调用另外一个页面的东西? ()

         通过在打开页面的时候,赋予一定的参数来实现(例如:)
         Response.Write("<script language=javascript>window.open('aaa.aspx?id=adsf&id2=qwefasdf');</script>");
         //
         在aaa.aspx的page_load的方法中:
          if(this.Request.QueryString["id2"] != null){Label1.Text = this.Request.QueryString["id2"];}
         //说明 : 首先检测参数是否存在? 如果存在,则对其进行操作

    39. 关于databind

        在b/s 中datagrid 需要进行帮定  ; 在c/s 中 ,不需要进行帮定


    41. 更新dataset

        在更新dataset 之前,要使用commandbuild  对象,因为适配器自己不会建立适当的sql语法

        SqlCommandBuilder  mycommandbuild = new SqlCommandBuilder(sqlDataAdapter1);//创建语法
        sqlDataAdapter1.Update(dataSet1);  //更新数据库
        dataSet1.AcceptChanges();   //消除dataset 的状态

    42. 数据库连接

         如果用适配器,则不用调用连接对象的OPen方法

         如果直接用命令,则需要调用连接对象的open 和 close 方法

    43. 弹出出错窗口

        Response.Write("<script language=javascript>window.open('../error.aspx','','toolbar=no,menubar=no,titlebar=no,directories=no,resizable=no,status=no,fullscreen=no,top=120,left=150,width=500,height=200');</script>"); //打开新窗口

    44. 导出到excel (灵活赋值)
           //按钮语法
            Application.Lock();
              ExportToExcel   ls_l = new ExportToExcel();
              ls_l.CreateExcel();
     Application.UnLock();
           //要用到导出到excel 的类ExportToExcel   //在印务web 中有

    45. 用户自定义控件

       
       首先在自定义控件中添加自己的属性或者方法
       public string mytext()
      {
       get
       {
        return TextBox1.Text.Trim ();
       }
       set
       {
                   TextBox1.Text=value;
       }

      }

          //
          在主页面中的调用:  在页面的开始,声明变量protected WebUserControl1 WebUserControl11;
          //然后就可以使用了

    46. 添加自定义控件
          this.FindControl("Form1").Controls.Add((WebUserControl1) this.LoadControl("WebUserControl1.ascx"));

    47.  如何在自定义控件中修改主页面上的 控件的属性 (冒泡)
       
         1. Label lb = (Label)this.Page.FindControl("Label2");
         2. System.Web.UI.Control c = this.Parent.Parent.FindControl("Label2");
         使用1或者2都行  从用户控件找到承载它的页面
            (lb.Text = "asdfasdf"; 或者c.text = "df")

        c# 的写法
        this.FindForm(); (this代表用户控件)

    48. 如何让菜单(框架)显示或者隐藏

       //search 代表框架集  (下面两个的集合)
       if (LinkButton2.Text == "显示菜单")
      {
        LinkButton2.Text = "隐藏菜单";
        Response.Write("<script language=javascript>parent.search.cols='190,*';</script>");

      }
       else
       {
        LinkButton2.Text = "显示菜单";
        Response.Write("<script language=javascript>parent.search.cols='0,*';</script>");
       }

    49. 创建锚点字符串 (html)
        <FONT face="宋体"><a href="#" onclick="cwin();">关闭菜单</a></FONT> //

    50. 系统提示asp.net 检测到不是1.1版本  如何解决?

         运行aspnet_regiis -i (在相应目录下,在dos 下运行此命令)

    51. 如何关闭框架?

        Response.Write("<script language=javascript>top.location.href='login.aspx';</script>"); //显
         (让登录页面代替框架,此代码在框架中的一个页面中写)

    52. 数据帮定语法:

        从dataview  DataBinder.Eval(Container.DataItem,"aaa")
       

    53. 如何取模板列中的值
          if (((Button ) e.CommandSource).CommandName=="update")
          {string ls_bbb = ((TextBox) e.Item.FindControl("TextBox4")).Text; //bbb的值
          执行update 命令 } (在datalist的某个事件中)

    //    DataList1.SelectedIndex = e.Item.ItemIndex;  (在itemcommand事件中)

    54.   datalist模板列的编辑,更新和取消 
       
          必须把编辑列的commandname 定义为edit ,更新列的commandname 定义为  update
                      取消列的commandname 定义为 cancel

    55.  如何使用Cookie

        HttpCookie MyCookie = new HttpCookie("LastVisit");
        DateTime now = DateTime.Now;

        MyCookie.Value = now.ToString();
        MyCookie.Expires = now.AddHours(1);
        Response.Cookies.Add(MyCookie);

    56. 如何让.net的代码展开或者折叠

           #region 标题
       //代码块
        #endregion                       
    57. 如何获取当前请求的验证

         bool www = Context.User.Identity.IsAuthenticated; 
            //www 如果为false的话,为没有经过验证, true 的话,为已经经过验证
                  //当前请求是否验证成功
    //或者  if(!Page.IsValid)   //指的是当前的页面的验证是否成功

    58. 取得datagrid 中的数值 e.Item.Cells[4].Text;

    59. 如何设置asp.net 页面的登录安全性

        FormsAuthentication.SetAuthCookie(st_UserName, false);
              //创建身份验证票 st_UserName 代表用户名  false 代表是否使用cookie
        FormsAuthentication.SignOut();  //移除身份验证票

       在web.config 中需要这样设置 : <deny users="?" />

    60. 如何将datagrid 的行设置为修改状态  : 
       
         DataGrid1.EditItemIndex = (int) e.Item.ItemIndex; //事件为:DataGrid1_EditCommand
         然后,重新帮定一下

    61. 如何上传很大的文件?
         修改web.config

          <httpRuntime maxRequestLength="10240"  useFullyQualifiedRedirectUrl="true" executionTimeout="100"/>
          10240 代表10M

    62. 如何读写xml配置文件
     
        E:\我的文档\记事本\经验文档\net\文件

    63. 如何在客户端上打开word文档,并保存到服务器上去?

       (在客户端上安装offices2003 或者xp) 
     
       <Script Language="JavaScript">
         function Validator()
         {
           var openDocObj;
           openDocObj = new ActiveXObject("SharePoint.OpenDocuments.2");
           openDocObj.EditDocument("http://localhost/webdemo1/肝火.doc");
         }
       </script>
     
    65. aspx文件在dreamweaver 中显示(汉字)乱码?
      
       在dreamweaver 加入下面的语句: (换上新版本:可以显示aspx中的text框等)
       <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

    66. 在datagrid中,给编辑框赋值

         在事件DataGrid1_ItemCreated中,
            ListItemType lit = e.Item.ItemType;
       if(lit == ListItemType.EditItem)
       {
        TextBox TextBox1 = (TextBox)e.Item.FindControl("TextBox1");
        //DropDownList DropDownList1 = (DropDownList)e.Item.FindControl("DropDownList1");
        DataRowView drv = (DataRowView)e.Item.DataItem;
        
        if(drv != null)
        {
         TextBox1.Text = drv["loginname"].ToString();
          
        }
       }


      
    67. 在datagrid中, 增加删除按钮的提示框
       
         在事件DataGrid1_ItemDataBound   中,

                           if (e.Item.ItemType == ListItemType.Item ||
        e.Item.ItemType == ListItemType.AlternatingItem)
       {

        LinkButton button = (LinkButton) e.Item.FindControl("lb_delete");
        
        button.Attributes.Add ("onclick","return confirm (\"确定要删除此项记录吗?\");");
       }
      
     68.  for循环的使用方法
                  经常用于数组列表
           for (int i = 0;i <  10;i++)
        {
                                    }

    69.  foreach 循环的用法 //xhxhxh

        foreach (string s in myArray){} //ls_sz 为字符串的集合(普通数组)
        foreach (TreeNode ls_TreeNode_z in TreeView1.Nodes ){} //属性视图的foreach 用法
        foreach(DataRowView Row in dvTree)                     //dataset 的foreach 用法
        foreach(DataRow r in myDataSet.Tables[0].Rows)  //用于删除操作等  !!  遍历dataset
        foreach(DataRowView drv in dt.DefaultView)      //遍历DataView
        foreach(DataGridItem thisItem in DataGrid1.Items) //遍历datagrid
        for (int i=0;i < my_ArrayList.Count;i++)          //遍历ArrayList
        for (int i = 0;i < CheckBoxList1.Items.Count;i++) //遍历CheckBoxList
        for (int i = 0;i < DropDownList1.Items.Count;i++) //遍历DropDownList
        for(int i=0;i< ListBox2.Items.Count;i++)          //遍历listbox
        foreach (DataGridViewRow thisItem in dataGridView_main.Rows) //遍历datagridview
        foreach (DataGridViewRow myItem in dataGridView_main.SelectedRows)     //遍历datagridview (中 被选择的行)
        foreach (DataRowView myRow in myDataView)   //遍历DataRowView   视图
        foreach (ToolStripMenuItem myToolStripMenuItem in m_main.Items)//循环菜单项
        foreach (TreeNode myTreeNode in treeView_sc_select.Nodes) //循环树

    70. DataView myDataView = new DataView(myDataSet.Tables[0]); //新的数据视图
        myDataView .RowFilter = " id = '"+s+"' and s_mch = '"+textbox_mch.text+"' ";

    70. 大纲折叠

        #region #endregion

    71.  公用sql语法返回值  //cx //tststs

       //web 应用
       if (myDataSet == null){qjbl.get_error_ck();return;}
       if (qjbl.is_update[0].ToString()== "no"){qjbl.get_error_ck();return;}

       //win form
       if (myDataSet == null){MessageBox.Show("数据库错误: " + DataOperation.globalErrorString, "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);return;}
       if (myDataSet == null) { MessageBox.Show(qjbl.qjbl_error, "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; }
       if (qjbl.is_update[0].Trim() == "no") {MessageBox.Show("数据库错误: "+qjbl.is_update[1].Trim(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; }
       //普通提示
       MessageBox.Show("我的文字", "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);

    71. c# 按钮提示

           DialogResult myDialogResult = new DialogResult();
           myDialogResult = MessageBox.Show("是否真的要创建数据库?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
           if (myDialogResult == DialogResult.No) { return; }

    72. 从字符串中取数组

        string[] myArray;
       myArray= ls_str.Split(";".ToCharArray());

    73. datagrid 在进行数据编辑的时候,点击更新或取消之外的按钮的时候,要注意:
     

     if (e.Item.Cells[0].Text == null || e.Item.Cells[0].Text.ToString().Trim() == "" )
       {
        Response.Write("<script language=javascript>window.alert('请进行数据更新或者取消');</script>");
        return;
       }

    75.  删除按钮(datagrid 的 DataBound事件)
     

                  if (e.Item.ItemType == ListItemType.Item ||
        e.Item.ItemType == ListItemType.AlternatingItem)
       {

        LinkButton button = (LinkButton) e.Item.FindControl("lb_delete");
        
        button.Attributes.Add ("onclick","return confirm (\"确定要删除此项记录吗?\");");

    76.   编辑框的数据的提取(datagrid 的 ItemCreated事件) 给编辑框赋值

        if (e.Item.ItemType == ListItemType.EditItem)
       {
        TextBox TextBox1 = (TextBox) e.Item.FindControl("TextBox1");
        DataRowView drv = (DataRowView)e.Item.DataItem;
        //
        if(drv != null)
        {
         TextBox1.Text =  drv["name"].ToString();
        }

       }

    77.    datagrid 的风格语法(在<Columns> 之前)

          <FooterStyle ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
             <SelectedItemStyle Font-Bold="True" Wrap="False"></SelectedItemStyle>
             <AlternatingItemStyle Wrap="False" CssClass="table_odd_row"></AlternatingItemStyle>
             <ItemStyle Wrap="False" CssClass="table_even_row"></ItemStyle>
             <HeaderStyle Font-Bold="True" HorizontalAlign="Center" ForeColor="White" BackColor="#000084"></HeaderStyle>

    78. panel 风格的设置   div_2.Style.Add("Top ","0");

    79. 页面的设置
       
      
        class="table_title_text"  //无颜色 大字
        class="table_title_text_small"  //黑色 小字(很小)
        class="table_border"      //黑框   小字
        class="table_title_row"   //蓝色  小字、
        class="table_even_row"   //灰色  小字、
        class="table_odd_row"   //灰色(更灰)  小字
       
    80. 日期格式 (日期转化为字符串) ld_date.tostring("yyyy-MM-dd")

    81. 手工生成dataset (外部) 临时table
        
                         DataSet myDataSet = new DataSet();
                                             DataTable dt = new DataTable();
       DataColumnCollection dcc = dt.Columns;
                            dt.TableName = "Table";
       DataColumn dc = new DataColumn("a01", typeof(System.String));
       dcc.Add(dc);
       dc = new DataColumn("a02", typeof(System.String));
       dcc.Add(dc);

       DataRow dr = dt.NewRow();
       dr[0] = "asdfasdf";
       dr[1] = "rrrrrrrrr";
       
       dt.Rows.Add(dr);

       myDataSet .Tables.Add(dt);


    82.  datagrid分页删除的时候,取得最后一行(为当前行)

       if(e.Item.ItemIndex == 0 && DataGrid1.Items.Count == 1)
       {
        int pageIndex = DataGrid1.CurrentPageIndex - 1;
        if(pageIndex < 0){ pageIndex = 0;}
                                    DataGrid1.CurrentPageIndex = pageIndex;
       }


    83. datagrid分页新增的时候,取得最后一行(为当前行)
     
       if ( DataGrid1.CurrentPageIndex == DataGrid1.PageCount -1)
       
         //
        {
        
         if (DataGrid1.Items.Count == 10)
         {
          DataGrid1.CurrentPageIndex = DataGrid1.CurrentPageIndex + 1;
         }
        }
        else
        {
                                            DataGrid1.CurrentPageIndex = DataGrid1.PageCount -1;
            if (DataGrid1.Items.Count == 10)
         {
          DataGrid1.CurrentPageIndex = DataGrid1.PageCount;
          
         }
        }


    85.    datagrid 中数字列的格式化设置 #号的作用是:0的时候不出现  {0:#.##} 
                      日期列的格式化设置: {0:yyyy-MM-dd}              
           在报表服务器中               #.##

    86.   在datagrid  中增加行的序号 (增加一个模版列)

            DataGrid1.CurrentPageIndex*DataGrid1.PageSize+DataGrid1.Items.Count+1

    87.   在asp.net 中定时器的使用

       在html中  :

                 <script language="javascript">
                   function GetClass()
                     {
                       var k="";
                         k="<%= GetClass() %>";
                         alert(k);
                       }
                     setInterval("GetClass()",1000)
      </script>
       在c# 中 :  public string GetClass()
      {
       return "OK";
      }

    88. 模拟浏览器的回退按钮

       javascript:window.history.back();
       javascript:window.history.forward();

    89. 如何认让网页自动刷新

       <meta http-equiv="Refresh" content="3;url=http://www.peopledaily.com.cn">
           //3是秒数
           //http://www.peopledaily.com.cn 是跳转的地址
        或者:
        window.location.reload();

    90.  使网页的框获得焦点

             <script>
      function jump()
      {
        document.all.txtLoginName.focus()

      }
      </script>

    91.  在网页上使回车键变成tab键

       
      <SCRIPT LANGUAGE="JavaScript">
    function mm()
    {
      if(window.event.keyCode==13)
      {
        window.event.keyCode    = 9;
      
      }
    }
    </SCRIPT>
      <body onkeydown="mm()">

    92. 在网页上如何得到按键的值

       <SCRIPT  LANGUAGE=javascript>
    <!--

    function check() {
     alert(window.event.keyCode);
     }
    //-->
    </SCRIPT>

    <body onkeydown="check()">

    93. 菜单属性设置

      
       <asp:Panel id="Panel1" style="Z-INDEX: 101; LEFT: 0px; POSITION: absolute" runat="server" Height="99.94%"
        Width="144px" BackImageUrl="images/leftbg.jpg">
        <FONT face="宋体">
         <pan:WebNavigator id="WebNavigator1" runat="server" Height="100%" ButtonHeight="20" LoadingText="无可用菜单"
          GroupSelected="0" GroupSpacing="0" ButtonBorderSize="1" BackgroundImage="images/menu/menu_bj.gif"
          ButtonBackgroundImage="images/PanelBegin2.gif" InnerHighlightColor="#E1E1E1" SelectedButtonBackgroundImage="images/PanelBegin2.gif"></pan:WebNavigator></FONT>
       </asp:Panel>


    94. 使用变量代替html 字符
       <TITLE><% =get_title() %></TITLE>

    95. 数组的赋值    

                    string[] ls_cs = new string[2] ;
                    ls_cs[0] = "";

    96.  <iframe width=420 height=330 frameborder=0 scrolling=auto src=URL></iframe>,


    97.   网页的父子关系

    <SCRIPT lanuage='JScript'>
    window.showModelessDialog('messages.asp',[window],'dialogWidth:395px;dialogHeight:30px;dialogLeft:200;dialogTop:0;help:no;status:no;scroll:0;resizable:yes');</script>");


    98.  格式化数字的小数位数(2位小数)

         <%# DataBinder.Eval(Container.DataItem, "Price", "{0:n2}") %>
         <%# DataBinder.Eval(Container.DataItem, "Price", "{0:#.##}") %>
         ld_dec_sz =  Math.Roundld_dec_sz,2) //对数值进行格式化
     
    99.   判断字节数

         System.Text.Encoding.Default.GetByteCount(str)

    100. HttpContext.Current.Response.Write("<script language=javascript>window.alert('" + eee.Message.ToString() + "');</script>"); //显示提示框

    101. GridView 表头合并的问题
           private void NewRenderMethod(HtmlTextWriter writer, Control ctl)
        {
          
            writer.Write("<TD colspan=\"3\" align=\"center\">联系电话</TD>\n");
            writer.Write("<tr><td colspan = \"2\" align=\"center\">111</td><td>333</td></tr>");
          
        }
        //
        protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
        {
            ListItemType lit = (ListItemType)e.Row.RowType;
                 if(ListItemType.Header == lit)
                 {
                     e.Row.SetRenderMethodDelegate(new RenderMethod(NewRenderMethod));
                 }
        }

    102. 备份 恢复 数据库

       backup database sbxxxt2 to disk='d:\sbxxxt_data.bak'


       restore filelistonly from disk='d:\sbxxxt_data.bak'

       load database sbxxxt2                  
        from disk='d:\sbxxxt_data.bak'
        with recovery,
        replace,
        move 'aaa ' to 'd:\sbxxxt2_data.mdf',
        move 'aaa_log'  to 'd:\sbxxxt2_log.ldf'
        //
        select filename from sysdatabases where name = 'master'   //取得数据库的安装路径
        //

    103. 取得c# windowform 程序的执行路径
        
        Application.StartupPath

    104. C# windows程序的提示

                  DialogResult myDialogResult = new DialogResult();
               myDialogResult = MessageBox.Show("是否真的要创建数据库?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
               if (myDialogResult == DialogResult.No) { return; }

    105. 从域中获取用户名:

           准备工作: (1. 我的电脑属性加入域:如:myn.com 2. 网络连接 DNS设置域服务器为DNS服务器   )
           DirectorySearcher ds = new  DirectorySearcher();
           ds.SearchRoot = new DirectoryEntry("LDAP://DC=myn,DC=com");
           ds.Filter = "(|(&(objectCategory=user)(name=*)))";
           ds.PropertiesToLoad.Add("name");
           ds.PropertiesToLoad.Add("sAMAccountName");
           ds.SizeLimit = 10000;
           ds.PageSize = 10000;
           ds.ServerTimeLimit = TimeSpan.FromMinutes(5);
            try
            {
               // start searching
                SearchResultCollection src = ds.FindAll();
                foreach (SearchResult sr in src)
                {
                    string tmp = sr.GetDirectoryEntry().Path.ToString();
                    string tmp1 = tmp.Substring(7, tmp.Length - 14);
                    string login = sr.GetDirectoryEntry().Properties["sAMAccountName"].Value.ToString();
                    string strIns = "INSERT INTO adDeptManTemp (NoteValue, manName, manLogin) VALUES ('" + tmp + "','" + tmp1 + "','" + login + "')";
                }
                src.Dispose();
            }
            catch (Exception err)
            {
                Response.Write("<script language=javascript>window.alert(" + err.Message + ")</script>");
            }

    106. 根据域的用户名和口令登录

             try
            {

                DirectoryEntry dr = new DirectoryEntry("LDAP://DC=myn,DC=com", TextBox_user.Text, TextBox_kl.Text, AuthenticationTypes.Secure);
                if (dr.Name != string.Empty)
                {
                    string sss = dr.Name;
                }
            }
            catch (Exception err)
            {
                string sss = err.Message.Trim();
            }

    107.   windows程序调用ie

          System.Diagnostics.Process.Start("IExplore.exe", "http://www.sina.com.cn");

    108.  左连接
     
          select rtrim(adtype.s_name) as s_name from zhwl_lsh LEFT OUTER JOIN adtype ON  zhwl_lsh.f13 = adtype.f11 where              zhwl_lsh.f13 = adtype.f11

    109. sql语法

          case 用法: CASE WHEN price IS NULL THEN 'Unpriced' WHEN price < 10 THEN 'Bargain' WHEN price BETWEEN 10 and 20 THEN                  'Average' ELSE 'Gift to impress relatives' END

    110. 判断网络连通

       static bool IsOnLine()
            {
                NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
                foreach (NetworkInterface adapter in adapters)
                {
                    IPInterfaceProperties Propertims = adapter.GetIPProperties();
                    if (adapter.OperationalStatus != OperationalStatus.Up)
                    {
                        continue;
                    }
                    //
                    UnicastIPAddressInformationCollection addressCollection = Propertims.UnicastAddresses;
                    foreach (UnicastIPAddressInformation addressInfo in addressCollection)
                    {
                        if (IPAddress.IsLoopback(addressInfo.Address))
                        {
                            continue;
                        }
                        //
                        if (addressInfo.Address.ToString() == IPAddress.IPv6None.ToString())
                        {
                            continue;
                        }
                        //
                        if (addressInfo.Address.ToString() == IPAddress.None.ToString())
                        {
                            continue;
                        }
                        //
                        return true;
                    }
                    //
                }
                //
                return false;
                //
            }


    111. sql 注入 和 防范(不能录入单引号)
       
        [html]<script>
            function renc(obj, reg, inputStr)
            {
                    var docSel        = document.selection.createRange()
                    if (docSel.parentElement().tagName != "INPUT")        return false
                    oSel = docSel.duplicate()
                    oSel.text = ""
                    var srcRange        = obj.createTextRange()
                    oSel.setEndPoint("StartToStart", srcRange)
                    var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length)
                    return reg.test(str)
            }
    </script>

    <asp:TextBox ID="TextBox1"  onkeypress ="return renc(this,/^[^']*$/,String.fromCharCode(event.keyCode))" runat="server" Style="z-index: 101; left: 30px; position: absolute;
                top: 155px"></asp:TextBox>
    [/html]
       

    112.  如何在网页中 动态生成元素

          在页面上:
          <span id="imgid" runat="server"></span>  作用是 进行定位
         在 代码里面:
              string str1=null;
       int j;
       for(j=1;j<=aa;j++)
        str1=str1+"<br>&nbsp; <INPUT id='uploadFile"+j+"' type='file' name='uploadFile"+j+"' runat='server'>";
      imgid.InnerHtml=str1;

    113. 如何在网页上 支持汉字(不是Uncode) 不出现乱码

        <globalization  requestEncoding="GB2312" responseEncoding="GB2312"/>

    115. 修改列的宽度(Sql)

         ALTER TABLE aaa ALTER COLUMN f13 char (30)

    116. 抛出 一个 新异常

       throw new Exception(Public.globalErrorString);

    117. 对Datagridview 的排序

        ListSortDirection direction;
                direction = ListSortDirection.Descending;

                dataGridView1.Columns[0].HeaderCell.SortGlyphDirection = SortOrder.None;
                dataGridView1.Sort(dataGridView1.Columns[0], direction);

    118. 得到客户端的IP地址
         
          Request.UserHostAddress.ToString()   //用于asp.net
          ip=Request.ServerVariables("Local_Addr") //第二种用法
          System.Web.HttpContext.Current.Request.UserHostAddress //用于webservices或者网站
          //发布以后 起作用 调试的时候 得到127.0.0.1
    119. 下载文件的IIS设置 (自动更新)
      
         在"MIME 类型"框中键入
         .*
         application/octet-stream
        

    120. 如何使用多线程(带参数使用)
        
          //Thread thNew = new Thread(new ParameterizedThreadStart(Show_Progress));
                                //thNew.Start(myArrayList);
            private void Show_Progress(object myArrayList)
            {
                ArrayList ArrayList_Current = (ArrayList)myArrayList;
                if (myFTP.Put(ArrayList_Current[0].ToString() + ArrayList_Current[1].ToString(), ArrayList_Current[2].ToString()) == false)
                {
                    MessageBox.Show(UseScene.textBox_Photo + "上传失败\r\n" + Public.globalErrorString, "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);

                }
                timer_UpLoad.Stop();
            }
           如果不带参数(Thread thNew = new Thread(new ThreadStart(Show_Progress));)

    121.   访问FTP

              ftp://sa:123@192.168.50.23/

    122. 
        c#安装盘如何将卸载的快捷方式放到菜单上?

       将msiexec.exe 文件 复制到安装文件目录下
       创建这个文件的快捷方式 并设置快捷方式的属性
       Arguments为 /x{[ProductCode]}

    123. 如何在下载安装盘的时候 保留一部分文件?
       
       选择这个文件 点击属性Permanent 将属性设置为:True

    126. 数据库分区

         1. Create PARTITION FUNCTION 分区函数名称 (datetime) AS RANGE RIGHT FOR VALUES
                 ('2008-01-01', '2008-04-02', '2008-07-03','2008-10-03', '2009-01-03')

         2. Create PARTITION SCHEME 分区架构名称 as PARTITION 分区函数名称 ALL to ([PRIMARY])

          3. ALTER TABLE 表名     DROP CONSTRAINT 索引名称
                    WITH(  MOVE TO 分区架构名称(列名))


        (须为 聚集索引)

    127.  关于datagridview 中数字的表示
     

         1. 带小数的 #,##0.00;-#,##0.00;'' 整数     0;-0;''

    128. 自定义事件:
         //定义委托
         public delegate void peijHandler(object sender, peij e);
        
        //定义事件参数
        public class peij : EventArgs
        {

            private String _itemName;

            public peij(string itemName)
            {

                _itemName = itemName;
            }

            public string ItemName
            {
                get { return _itemName; }
                set { _itemName = value; }
            }
        }
        //在控件类里面填写下面的代码
         public partial class UserControl1 : UserControl
         {
              public event peijHandler peij01; //定义事件
               private void button1_Click(object sender, EventArgs e)
            {
                peij BeforeArgs = new peij("888");
                if (peij01 != null)
                {
                    peij01(button1, BeforeArgs);
                }

            }
         }
        经过上面几步 就可以在控件UserControl1上自定义了一个事件 这个事件执行的方法再在这个控件的事件里面写

    129. 委托的用法:
          public delegate string mydl (string my_cs);
           public partial class Form1 : Form
        {
            public string ff_1(string my_cs)
            {
                return my_cs;
            }
             private void button1_Click(object sender, EventArgs e)
            {
                mydl aaa = new mydl(ff_1);
                string aa = aaa("aaa");

                MessageBox.Show(aa);
            }
        }
    //////////////////////wpf/////////////////////////////////////////////////////
    //////////////////////wpf/////////////////////////////////////////////////////
    128. wpf 中 listview 的数据绑定
         <ListView Name="listView1" Margin="12,12,12,0" Height="108" VerticalAlignment="Top" ItemsSource="{Binding}" >
                <ListView.View>
                    <GridView>
                        <GridViewColumn Header="a01" DisplayMemberBinding="{Binding a01}"></GridViewColumn>
                        <GridViewColumn Header="a02" DisplayMemberBinding="{Binding a02}"></GridViewColumn>
                    </GridView>
                </ListView.View>
            </ListView>

    129. 动态添加事件 (自定义事件)

         myBtn.Click += new System.EventHandler(UpdateClick);       
         protected void UpdateClick(object sender, EventArgs e)
            {
                Button button = (Button)sender;
                MessageBox.Show(button.Name);
            }

         rpbtn.Click += new System.Windows.RoutedEventHandler(Increase);
         void Increase(object sender, RoutedEventArgs e)
            { }
        获取动态风格
        myToolTip.Style = (Style) FindResource("Simple");

    130 wpf 滚动控件  <ScrollViewer>

    131. 动态绑定 (依赖项属性)
        <TextBlock Text="{Binding ElementName=Rectangle属性1,Path=Height}"/>绑定其他控件的属性
         Height="{Binding ElementName=Slider1,Path=Value}"        //绑定其他控件的属性
        "{DynamicResource {x:Static SystemColors.MenuHighlightBrushKey}}" 绑定系统的颜色
        下面通过代码来绑定
        Button b = sender as Button;
        b.Background = (Brush)this.FindResource("RainbowBrush");

       //Rectangle1 是控件的名称  Height 是控件的属性

        通过代码来绑定:
        Binding binding = new Binding();  
        binding.Source = this.slider1;  
        binding.Path = new PropertyPath("Value");  
        this.textBox1.SetBinding(TextBox.TextProperty, binding);   

    132. 对风格进行赋值

        Style="{StaticResource 关键字}"
        Style="{StaticResource Triggers}"

    133. wpf控件 Slider 的属性:
         Name="mySlider" (控件名称)Width="219" Height = "100"
         Orientation="Horizontal" (是水平Horizontal还是垂直Vertical)
         Value="0"  (目前的箭头所在的值)
         Minimum="10" (最小数值)
         Maximum="10" (最大数值)
         TickPlacement="BottomRight" (刻度放置的位置)
         AutoToolTipPlacement="BottomRight" (是否有提示以及提示出现的位置)
         AutoToolTipPrecision="2" (提示数字的小数位数)
         TickFrequency="3" (移动频率)
         IsSnapToTickEnabled="True" (移动最少一格TickFrequency 不走刻度中间)
         IsDirectionReversed="True" (获取或设置Value 的增加方向是否与默认方向反向)
         IsMoveToPointEnabled="True"
         (是否立即将Slider 的Thumb 移动到在鼠标指针悬停在Slider 轨道的上方时鼠标单击的位置)
         Ticks="0, 1.1, 2.5, 3"(以不规则间隔沿Slider 创建刻度线)
         IsSelectionRangeEnabled="true"(获取或设置TickBar 是否显示选择范围)
         SelectionStart="1.1"(获取或设置Slider 的指定选择内容的最小值)
         SelectionEnd="3"  (获取或设置Slider 的指定选择内容的最大值)
         代码设置不规则的刻度线
          DoubleCollection tickMarks = new DoubleCollection();
                tickMarks.Add(1.1);
                tickMarks.Add(1.3);
                tickMarks.Add(2.0);
                tickMarks.Add(7.0);
                tickMarks.Add(10.0);
         hslider.Ticks = tickMarks;

    134. wpf控件 ProgressBar的属性:
            类:Duration (处于活动状态的持续时间)
            Duration duration = new Duration(TimeSpan.FromSeconds(1));(1秒)
            类:DoubleAnimation(使其在指定的时间内由起点值到达终点值,从而形成动画效果)
            DoubleAnimation doubleanimation = new DoubleAnimation(0,100.0, duration);
            doubleanimation.RepeatBehavior = RepeatBehavior.Forever;(永远做下去)
            doubleanimation.RepeatBehavior = new RepeatBehavior(5);(做5次)
         ProgressBar1.IsIndeterminate = true;
         (该值指示进度条是使用重复模式报告一般进度,还是基于Value 属性报告进度)
        
    135. wpf控件 定时器
         DispatcherTimer closeTimer = new DispatcherTimer(DispatcherPriority.Normal);

           closeTimer.Interval = TimeSpan.FromSeconds(2);
           closeTimer.Tick += new EventHandler(TimeOutPopup);

           private void TimeOutPopup(object sender, EventArgs e)
            {
                myPopup.IsOpen = false;
                closeTimer.Stop();
            }

    136. wpf控件 Popup
          PlacementTarget="{Binding ElementName = myEllipse}"
           获取或设置当打开Popup 控件时该控件相对于其放置的元素
          PlacementRectangle="0,0,30,50" 获取或设置当打开Popup 控件时该控件相对于其放置的矩形
          VerticalOffset="20" 获取或设置目标原点与弹出项对齐点之间的垂直距离
          HorizontalOffset="20" 获取或设置目标原点与弹出项对齐点之间的水平距离
          Placement="Bottom"
          获取或设置Popup 控件打开时的控件方向,并指定Popup 控件在与屏幕边界重叠时的控件行为
          PopupAnimation="Fade"
          AllowsTransparency="True" 该值指示Popup 控件是否可以包含透明内容
          PopupAnimation:指示显示窗口时是否使用动画,只有在AllowsTransparency 等于true时此属性才有用
              PopupAnimation="Fade" 褪色或者出现
              PopupAnimation="None" 没有动画
              PopupAnimation="Scroll" 从左上角出现到制定位置
              PopupAnimation="Slide"  从上面过来
          IsOpen="{Binding ElementName=myCheckBox,Path=IsChecked}" 是否出现绑定到myCheckBox
          下面是自定义位置的例子:
          myPopup.CustomPopupPlacementCallback =
                    new CustomPopupPlacementCallback(placePopup);
           public CustomPopupPlacement[] placePopup(Size popupSize, Size targetSize, Point offset)
            {
                CustomPopupPlacement[] ttplaces =
                        new CustomPopupPlacement[] { new CustomPopupPlacement() };
                ttplaces[0].Point = new Point(-50, 90);
                ttplaces[0].PrimaryAxis = PopupPrimaryAxis.Vertical;
                return ttplaces;
            }
    136. wpf控件 TextBlock
         Name="PopupContent"  FontFamily="Courier New" 字体名称
         Background="Beige"
         FontSize="12"
         Width="75" 
         FontSize. 文字大小,以像素为单位
         TextWrapping="Wrap" 获取或设置TextBlock 对文本进行换行的方式
         Text="郑文亮"    文本
         FontStyle="Normal"  可设置两种值: Normal, Italic(斜体)
         FontStetch. 按比例缩放文字,它提供一些枚举值 如下表
         FontWeight. 文字的胖瘦。可设置为
              Thin, ExtraLight, Light, Normal, Medium, SemiBold, Bold, ExtraBold, Black, ExtraBlack.            这些值是否起作用还要取决于你所选择的字体      
         Foreground.  通过这个属性可以设置文字的前景色填充。不但可以使用颜色值,还可以通过设置solid             color, gradient, image 及 video笔刷进行填充。还是那句话:很好,很强大
         TextDecorations. 对文字的修饰,当前Silverlight2只支持underline
         Runs. 你可以在TextBlock中使用Run标签创建内联元素,每个Run都可以设置上面提到的属性
         TextWrapping属性的值为“Wrap”来强制其换行
         LineBreak标签,它的作用相当于html中的<br />  换行标签
        
    137. wpf控件 Canvas
        
    138. wpf控件 Grid(wpf)
         Grid.SetRow(txtbox, i);        //TextBox放在第i+1行
         Grid.SetColumn(txtbox, 1);     //TextBox放在第2列
         Grid.SetColumnSpan(txtbox, 3); //TextBox跨越到最后一列(第4列) 
         grid.Children[1].Focus();  // 为第一个TextBox设置焦点

         <Grid.ColumnDefinitions>
             <ColumnDefinition Width="Auto"/>
             <ColumnDefinition Width="*"/>
         </Grid.ColumnDefinitions>
           <Grid.RowDefinitions>
                <RowDefinition Height="35"/>
                <RowDefinition Height="*"/>
                <RowDefinition Height="35"/>
            </Grid.RowDefinitions>
    138. wpf类 动画
           BeginStoryboard
         一个触发器操作,该操作可启动 Storyboard 并将其动画分发给动画的目标对象和属性
            <BeginStoryboard>
               <Storyboard>
                <DoubleAnimation
                  Storyboard.TargetName="旋转变形的名称"
                  Storyboard.TargetProperty="控件属性"  
                         控件属性=(RotateTransform.Angle) 获取或设置顺时针旋转角度(以度为单位)
                  From="0" To="360" Duration="0:0:5" AutoReverse="True" />
               </Storyboard>
            </BeginStoryboard>
            //下面的Canvas 是给上面用的
            <Canvas Width="100" Height="100" Background="YellowGreen"
                  Margin="150" >
                    <Canvas.RenderTransform>
                        <RotateTransform x:Name="旋转变形的名称" />
                    </Canvas.RenderTransform>
            //下面是为按钮的转动 转动的按钮的属性就是这么设置
            <Button Height="100" Width="100" Content="我是按钮 我会转动" Name="yyy">
                <Button.RenderTransform>
                    <RotateTransform x:Name="Button_theTransform" />
                </Button.RenderTransform>
           缩放动画
           <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation
                    Storyboard.TargetName="zhwl_ScaleTransform"
                    Storyboard.TargetProperty="ScaleY"
                    From="1" To="5" Duration="0:0:5" AutoReverse="True">
                                  
                                </DoubleAnimation>
                                <DoubleAnimation
                    Storyboard.TargetName="zhwl_ScaleTransform"
                    Storyboard.TargetProperty="ScaleX"
                    From="1" To="5" Duration="0:0:5" AutoReverse="True">

                                </DoubleAnimation>
                            </Storyboard>
                        </BeginStoryboard>
             //
            <Rectangle Height="50" Width="50" Fill="#CCCCCCFF"   Stroke="Blue" StrokeThickness="2" >
                <Rectangle.RenderTransform>
                    <ScaleTransform x:Name="zhwl_ScaleTransform" CenterX="0" CenterY="0" ScaleX="2"                     ScaleY="2" />
                </Rectangle.RenderTransform>
            </Rectangle>
             AutoReverse="True" 转过去再转回来 false 就不转回来了
      

    139. wpf 路径:
         pack://application:,,,/HomePage.xaml 没有子目录
         pack://application:,,,/Sub/HomePage.xaml 有子目录

    140. wpf 资源合并
     
          <ResourceDictionary>
                <ResourceDictionary.MergedDictionaries >
                    <ResourceDictionary Source="Resources/Dictionary2.xaml"/>
                    <ResourceDictionary Source="Resources/Dictionary1.xaml"/>
               </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>
         
    141.  wpf Style
          BasedOn= "{StaticResource 公共标志}" 继承自的公共风格(有标志Key)
          BasedOn="{StaticResource {x:Type CheckBox}}"   继承自的公共风格(无标志)
          TargetType="{x:Type TextBox}"  目标控件
          x:Key="我的标志"               用于Key的标志
          <Setter Property = "Background" Value= "Red"/>  属性和值
          <EventSetter Event="Checked" Handler="Checked_Click"/> 事件和执行函数

    142.  wpf   控件模板ControlTemplate 
          //使用方法 <Button Content="test btn" Template="{StaticResource ButtonTemplate}"
          //下面是定义
          <ControlTemplate TargetType="Button" x:Key="ButtonTemplate">
          <!--定义视觉树-->
          <Grid>
             <Ellipse Name="faceEllipse" Width="{TemplateBinding Button.Width}"                        Height="{TemplateBinding Control.Height}" Fill="{TemplateBinding                               Button.Background}"/>
               <TextBlock Name="txtBlock" Margin="{TemplateBinding Button.Padding}"                          VerticalAlignment="Center" HorizontalAlignment="Center"
                  Text="{TemplateBinding  Button.Content}" />
             </Grid>
           <!--定义视觉树_end-->
           <!--定义触发器-->
             <ControlTemplate.Triggers>
             <Trigger Property="Button.Ie="True">
                 <Setter Property="Button.Foreground" Value="Red" />
             </Trigger>
            </ControlTemplate.Triggers>
            <!--定义触发器_End-->
            </ControlTemplate>

    143.  wpf 菜单

          Header="_Cut"
          InputGestureTexmmand="ApplicationCommands.Open"

    145. wpf 控件 Windows
          WindowStartupLocation  开始的位置
          Content = Grid1   布局控件
          ResizeMode="NoResize"可去掉最大化和最小化按钮
          SizeToContent = SizeToContent.WidthAndHeight;  根据内容自动调整

    146. wpf FlowDocument 流文档   
             Section 分区 相当于 <div>
             Paragraph 段落
             BlockUIContainer 里面可以加图片
             InlineUIContainer 放置内置的wpf 控件 (一段文字的中间)
             Table 表格
             Table.Columns 列
             TableRowGroup 表行组
             TableRow 行
             TableCell 单元格 (里面有文字 还是需要Paragraph 标志)
             Span 将其他 Inline(内置) 流内容元素分组
             用于将其他内联流内容元素分组在一起。没有内在的呈现应用于 Span 元素中的内容或其他元素
             <Span FlowDirection="LeftToRight" Language="ar-SA"> 布局方向和语言

    147   wpf Path

          StrokeThickness="4" 线条的粗细
          Stroke="Black"      线条的颜色
          FlowDirection="LeftToRight" 方向
           <Path.Data>
                <GeometryGroup >
                    <LineGeometry StartPoint="300,10" EndPoint="350,30" />
                    <LineGeometry StartPoint="10,30" EndPoint="352,30" />
                    <LineGeometry StartPoint="300,50" EndPoint="350,30" />
                </GeometryGroup>
            </Path.Data>

    148.  wpf Viewbox
          定义一个内容修饰器,该修饰器可拉伸和缩放单个子元素以填满可用空间

    149.  wpf Ellipse (椭圆)
          x:Name = "GelBackground" ()

    145. 继承系统命令:
          例如: 143问题
          ApplicationCommands(应用程序命令):
          CancelPrint:取消打印
          Close:关闭
          ContextMenu:上下文菜单
          Copy:复制
          CorrectionList: Gets the value that represents the Correction List command.
          Cut:剪切
          Delete:删除
          Find:查找
          Help:帮助
          New:新建 
        NotACommand:不是命令,被忽略
          Open:打开
          Paste:粘贴
          Print:打印
          PrintPreview:打印预览
          Properties:属性
          Redo:重做
          Replace:取代
          Save:保存
          SaveAs:另存为
          SelectAll:选择所有的
          Stop:停止
          Undo:撤消
       ComponentCommands(组件命令):
          ExtendSelection:后接Down/Left/Right/Up, 比如:ExtendSelectionDown(Shift+Down,Extend           Selection Down),ExtendSelectionLeft等
          Move:后接Down/Left/Right/Up, 如:MoveDown
          MoveFocus:后接Down/Forward/Back/Up, 如:MoveFocusDown
          MoveFocusPage:后接Down/Up,如:MoveFocusPageUp
          MoveTo:后接End/Home/PageDown/PageUp,比如:MoveToPageDown
                ScrollByLine
          ScrollPage:后接Down/Left/Right/Up,比如:ScrollPageLeft
          SelectTo:End/Home/PageDown/PageUp,比如:SelectToEnd
          NavigationCommands(导航命令):
          Browse浏览: 后接Back/Forward/Home/Stop, 比如:BrowseBack
             缩放显示:DecreaseZoom, IncreaseZoom, Zoom
          Favorites(收藏)
         页面:FirstPage, LastPage, PreviousPage, NextPage,GoToPage
            NavigateJournal
          Refresh(刷新)
          Search(搜索)
        MediaCommands(多媒体控制命令):
            Treble高音:DecreaseTreble,IncreaseTreble
            Bass低音:BoostBass,DecreaseBass,IncreaseBass
            Channel频道:ChannelDown,ChannelUp
            MicrophoneVolume麦克风音量调        节:DecreaseMicrophoneVolume,IncreaseMicrophoneVolume,MuteMicrophoneVolume
            ToggleMicrophoneOnOff:麦克风开关
            Volume音量: DecreaseVolume,IncreaseVolume,MuteVolume
            Rewind, FastForward(回放,快进)
            Track轨道:PreviousTrack,NextTrack [上一段(节)]
            Play,Pause,Stop,Record(播放,暂停,停止,录制)
                        TogglePlayPause
            Select选择
            EditingCommands(编辑/排版类命令):
            Align对齐:AlignCenter,AlignJustify,AlignLeft,AlignRight(居中,撑满,左对齐,右对齐)
            Backspace退格
                  TabForward,TabBackward(Tab前缩,Tab向后)
            FontSize字体大小:DecreaseFontSize,IncreaseFontSize
             Indentation缩排:DecreaseIndentation, IncreaseIndentation
             Delete删除: Delete选中部分,DeleteNextWord:删除后一字,DeletePreviousWord:删除前一字
            EnterLineBreak:换行
            EnterParagraphBreak:换段
            CorrectSpellingError/IgnoreSpellingError:纠正/忽略拼写错误
            MoveUpByLine,MoveDownByLine: 上/下移一行,
            MoveUpByPage,MoveDownByPage: 上/下移一页
            MoveUpByParagraph,MoveDownByParagraph: 上/下移一段
            MoveLeftByCharacter/MoveRightByCharacter:左/右移一字符
            MoveLeftByWord/MoveRightByWord 左/右移一词
            MoveToDocumentStart/MoveToDocumentEnd:到文章开头/结尾
            MoveToLineStart/MoveToLineEnd:到一行的开头/结尾
            SelectUpByLine,SelectDownByLine:向上/下选一行
            SelectUpByPage,SelectDownByPage:向上/下选一页
            SelectUpByParagraph,SelectDownByParagraph:向上/下选一段
            SelectLeftByCharacter,SelectRightByCharacter:向左/右选中一字
            SelectLeftByWord,SelectRightByWord:向左/右选中一词
            SelectToDocumentStart,SelectToDocumentEnd: 选中到篇头/篇尾
            SelectToLineStart/SelectToLineEnd:选中到行首/行尾
            ToggleBold, ToggleItalic, ToggleUnderline(加粗,斜体,下划线)
            ToggleBullets, ToggleNumbering(列表:加点,加数字)
            ToggleInsert:插入
            ToggleSuperscript,ToggleSubscript(上标字,下标字)

    146. linqtosql (跟踪更新的原始值和当前值)
        
            ChangeSet cs = dc.GetChangeSet();
                foreach (object o in cs.Updates)
                {
                    aaa p = o as aaa;
                    if (p != null)
                    {
                        foreach (ModifiedMemberInfo mmi in dc.aaa.GetModifiedMembers(a))
                        {
                            Response.Write(mmi.Member.Name);
                            Response.Write(mmi.OriginalValue);
                            Response.Write(mmi.CurrentValue);
                        }
                    }
                }


    147.   //Table<T> table = db.GetTable<T>();
       
            //foreach (T item in db.GetChangeSet().Updates)
            //{
              

            //    ModifiedMemberInfo[] mmi = table.GetModifiedMembers(item);

            //    foreach (ModifiedMemberInfo mi in mmi)
            //    {
                
            //        string sColumnName = mi.Member.Name;


            //        string oldValue = mi.OriginalValue.ToString();
            //        string newValue = mi.CurrentValue.ToString();
                 
            //    }

              
            //}

    148.      正则表达式分割字符串

                string[] ss = Regex.Split(stext,@"dfdfdfd");  

  • 相关阅读:
    Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求
    转载:Struts2+Jquery实现ajax并返回json类型数据
    div 添加滚动条
    jsp页面 如何通过el表达式获取request属性值
    【转】通过Hibernate将数据 存入oracle数据库例子
    jsp 中 有没有类似java if else语句
    IDEA使用(一)
    Git进阶(二)
    JS语法记录
    Debian之MySQL
  • 原文地址:https://www.cnblogs.com/zhwl/p/1959540.html
Copyright © 2020-2023  润新知