窗体移动和阴影,对话框控件

Posted 游称

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了窗体移动和阴影,对话框控件相关的知识,希望对你有一定的参考价值。

窗体移动API:需要引用命名空间

//窗体移动API
[DllImport("user32.dll")]
public static extern bool ReleaseCapture();
[DllImport("user32.dll")]
public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int IParam);
public const int WM_SYSCOMMAND = 0x0112;
public const int SC_MOVE = 0xF010;
public const int HTCAPTION = 0x0002;
[DllImport("user32")]
private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, IntPtr lParam);
private const int WM_SETREDRAW = 0xB;



private void Form1_MouseDown(object sender, MouseEventArgs e)
{
    if (this.WindowState == FormWindowState.Normal)
    {
        ReleaseCapture();
        SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
    }
}

窗体阴影API:在构造函数中加一句话

//窗体阴影API
        const int CS_DropSHADOW = 0x20000;
        const int GCL_STYLE = (-26);
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern int SetClassLong(IntPtr hwnd, int nIndex, int dwNewLong);
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern int GetClassLong(IntPtr hwnd, int nIndex);


        public Form1()
        {
            InitializeComponent();
            SetClassLong(this.Handle, GCL_STYLE, GetClassLong(this.Handle, GCL_STYLE) | CS_DropSHADOW);
        }

1.colordialog:颜色对话框 改变对话框的字体颜色

 private void 自定义CToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DialogResult dr = colorDialog1.ShowDialog();
            if (dr == DialogResult.OK)
            {
                richTextBox1.ForeColor = colorDialog1.Color;            
            }
        }

2.fontdialog:字体对话框

private void 选项OToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DialogResult dr = fontDialog1.ShowDialog();
            if (dr == DialogResult.OK)
            {
                richTextBox1.Font = fontDialog1.Font;
            }
        }

showapply:是否显示应用按钮
showcolor:是否显示颜色按钮

要设置字体颜色,在if中再加上:

richtextbox.forecolor=fontdialog.color;

3.folderbrowserdialog:文件路径

 private void button2_Click(object sender, EventArgs e)
        {
            DialogResult dr= folderBrowserDialog1.ShowDialog();
            if (dr == DialogResult.OK)
            {
                richTextBox1.Text = folderBrowserDialog1.SelectedPath;
            }
        }

4.openfiledialog:打开文件
使用流需要应用命名空间:

using System.IO;
 private void button2_Click(object sender, EventArgs e)
        {
            openFileDialog1.Filter = "文本文件|*.txt";//设置打开格式
            DialogResult dr= openFileDialog1.ShowDialog();
            if (dr == DialogResult.OK)
            {
                label1.Text = openFileDialog1.FileName;//显示文件路径名
                StreamReader sr = new StreamReader(openFileDialog1.FileName,Encoding.Default);//防止乱码
                richTextBox1.Text= sr.ReadToEnd();
            }
        }

5.savefiledialog:保存文件

private void button3_Click(object sender, EventArgs e)
        {
            saveFileDialog1.Filter = "文本文件|*.txt|word|*.doc";
            DialogResult dr = saveFileDialog1.ShowDialog();
            if (dr == DialogResult.OK)
            {
                StreamWriter sw = new StreamWriter(saveFileDialog1.FileName,false,Encoding.Default);//防止乱码
                sw.Write(richTextBox1.Text);
                sw.Flush();
            }
        }

 

以上是关于窗体移动和阴影,对话框控件的主要内容,如果未能解决你的问题,请参考以下文章

Winform经典窗体移动API和窗体阴影API

C#-WinForm-无边框窗体的移动和阴影-API

窗体移动 窗体阴影API

2017-4-27Winform 窗体移动API 窗体阴影API

WinForm 窗体API移动 API阴影

VC 怎么动态改变控件大小