0%

  • 来源:明日科技
  • 实现无边框窗体的移动

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    using System.Runtime.InteropServices;

    namespace Example013_无标题窗体的拖动
    {
    /// <summary>
    /// Form1 的摘要说明。
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
    /// <summary>
    /// 必需的设计器变量。
    /// </summary>
    private System.ComponentModel.Container components = null;

    public Form1()
    {
    //
    // Windows 窗体设计器支持所必需的
    //
    InitializeComponent();

    //
    // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
    //
    }

    /// <summary>
    /// 清理所有正在使用的资源。
    /// </summary>
    protected override void Dispose(bool disposing)
    {
    if (disposing)
    {
    if (components != null)
    {
    components.Dispose();
    }
    }
    base.Dispose(disposing);
    }

    #region Windows Form Designer generated code
    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
    this.SuspendLayout();
    //
    // Form1
    //
    this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
    this.ClientSize = new System.Drawing.Size(292, 273);
    this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
    this.Name = "Form1";
    this.Text = "Form1";
    this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseDown);
    this.ResumeLayout(false);

    }
    #endregion

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

    [DllImport("user32.dll")]
    public static extern bool ReleaseCapture();
    [DllImport("user32.dll")]
    public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);

    public const int WM_SYSCOMMAND = 0x0112;
    public const int SC_MOVE = 0xF010;
    public const int HTCAPTION = 0x0002;

    private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    ReleaseCapture();
    SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
    }
    }
    }

    QQ图片20160704154934

    窗体渐变背景代码实例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    using System.Drawing.Drawing2D;

    namespace Example010_渐变的窗口背景
    {
    /// <summary>
    /// Form1 的摘要说明。
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
    /// <summary>
    /// 必需的设计器变量。
    /// </summary>
    private System.ComponentModel.Container components = null;

    public Form1()
    {
    //
    // Windows 窗体设计器支持所必需的
    //
    InitializeComponent();

    //
    // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
    //
    }

    /// <summary>
    /// 清理所有正在使用的资源。
    /// </summary>
    protected override void Dispose(bool disposing)
    {
    if (disposing)
    {
    if (components != null)
    {
    components.Dispose();
    }
    }
    base.Dispose(disposing);
    }

    #region Windows Form Designer generated code
    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
    //
    // Form1
    //
    this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
    this.ClientSize = new System.Drawing.Size(292, 273);
    this.Name = "Form1";
    this.Text = "Form1";
    this.Resize += new System.EventHandler(this.Form1_Resize);
    this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);

    }
    #endregion

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

    private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
    Graphics g = e.Graphics;
    Color FColor = Color.Blue;
    Color TColor = Color.Yellow;
    Brush b = new LinearGradientBrush(this.ClientRectangle, FColor, TColor, LinearGradientMode.ForwardDiagonal);
    g.FillRectangle(b, this.ClientRectangle);
    }

    private void Form1_Resize(object sender, System.EventArgs e)
    {
    this.Invalidate();
    }
    }
    }

    QQ图片20160704154023

    窗口渐显实现的效果

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;

    namespace Example002
    {
    /// <summary>
    /// Form1 的摘要说明。
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
    private System.Windows.Forms.Timer timer1;
    private System.ComponentModel.IContainer components;

    public Form1()
    {
    //
    // Windows 窗体设计器支持所必需的
    //
    InitializeComponent();
    //
    // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
    //
    }

    /// <summary>
    /// 清理所有正在使用的资源。
    /// </summary>
    protected override void Dispose(bool disposing)
    {
    if (disposing)
    {
    if (components != null)
    {
    components.Dispose();
    }
    }
    base.Dispose(disposing);
    }

    #region Windows Form Designer generated code
    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
    this.components = new System.ComponentModel.Container();
    this.timer1 = new System.Windows.Forms.Timer(this.components);
    //
    // timer1
    //
    this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
    //
    // Form1
    //
    this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
    this.ClientSize = new System.Drawing.Size(256, 141);
    this.Name = "Form1";
    this.Opacity = 0.5;
    this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
    this.Text = "Form1";
    this.Load += new System.EventHandler(this.Form1_Load);

    }
    #endregion

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

    private void Form1_Load(object sender, System.EventArgs e)
    {
    this.timer1.Enabled = true;
    this.Opacity = 0;
    }

    private void timer1_Tick(object sender, System.EventArgs e)
    {
    if (this.Opacity < 1)
    {
    this.Opacity = this.Opacity + 0.05;
    }
    else
    {
    this.timer1.Enabled = false;
    }
    }
    }
    }

    QQ图片20160704153514

  • 来源:明日科技
  • C# 数组转为table的实例。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

    namespace WindowsFormsApplication1
    {
    //http://www.cnblogs.com/Holmes-Jin/archive/2012/04/25/2470671.html


    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }


    private void button1_Click_1(object sender, EventArgs e)
    {
    dataGridView1.DataSource = ArrayToDataTable.Convert("haha", new string[] { "1", "2", "3", "4", "5", "6" });

    }

    private void button2_Click_1(object sender, EventArgs e)
    {
    string[,] array3D = {
    { "1", "数组转DataTable 1", "0"},
    { "2", "数组转DataTable 2", "1"},
    { "3", "数组转DataTable 3", "1"},
    { "4", "数组转DataTable 4", "2"},
    { "5", "数组转DataTable 5", "2"},
    { "6", "数组转DataTable 6", "5"},
    };
    dataGridView1.DataSource = ArrayToDataTable.Convert(new string[] { "haha1", "haha2", "haha3" }, array3D);
    }

    }

    class ArrayToDataTable
    {
    /// <summary>
    /// 把一个一维数组转换为DataTable
    /// </summary>
    /// <param name="ColumnName">列名</param>
    /// <param name="Array">一维数组</param>
    /// <returns>返回DataTable</returns>
    /// <remarks>柳永法 http://www.yongfa365.com/ </remarks>
    public static DataTable Convert(string ColumnName, string[] Array)
    {
    DataTable dt = new DataTable();
    dt.Columns.Add(ColumnName, typeof(string));

    for (int i = 0; i < Array.Length; i++)
    {
    DataRow dr = dt.NewRow();
    dr[ColumnName] = Array[i].ToString();
    dt.Rows.Add(dr);
    }

    return dt;
    }


    /// <summary>
    /// 反一个M行N列的二维数组转换为DataTable
    /// </summary>
    /// <param name="ColumnNames">一维数组,代表列名,不能有重复值</param>
    /// <param name="Arrays">M行N列的二维数组</param>
    /// <returns>返回DataTable</returns>
    /// <remarks>柳永法 http://www.yongfa365.com/ </remarks>
    public static DataTable Convert(string[] ColumnNames, string[,] Arrays)
    {
    DataTable dt = new DataTable();

    foreach (string ColumnName in ColumnNames)
    {
    dt.Columns.Add(ColumnName, typeof(string));
    }

    for (int i1 = 0; i1 < Arrays.GetLength(0); i1++)
    {
    DataRow dr = dt.NewRow();
    for (int i = 0; i < ColumnNames.Length; i++)
    {
    dr[i] = Arrays[i1, i].ToString();
    }
    dt.Rows.Add(dr);
    }

    return dt;

    }


    /// <summary>
    /// 反一个M行N列的二维数组转换为DataTable
    /// </summary>
    /// <param name="Arrays">M行N列的二维数组</param>
    /// <returns>返回DataTable</returns>
    /// <remarks>柳永法 http://www.yongfa365.com/ </remarks>
    public static DataTable Convert(string[,] Arrays)
    {
    DataTable dt = new DataTable();

    int a = Arrays.GetLength(0);
    for (int i = 0; i < Arrays.GetLength(1); i++)
    {
    dt.Columns.Add("col" + i.ToString(), typeof(string));
    }

    for (int i1 = 0; i1 < Arrays.GetLength(0); i1++)
    {
    DataRow dr = dt.NewRow();
    for (int i = 0; i < Arrays.GetLength(1); i++)
    {
    dr[i] = Arrays[i1, i].ToString();
    }
    dt.Rows.Add(dr);
    }

    return dt;

    }

    }
    }