布局主要有2个属性:
Anchor:锁定位置,相对于父级容器
Dock:填充位置(上下左右,剩下全部)
一般Dock是与容器控件配合使用
容器控件:
Panel:就是一个区域,类似于DIV,可以独立布局,还可以让其它控件及容器在它的内部再次布局
FlowLayoutPanel:流式布局容器,内容会默认从左向右排列,如果宽度不够了,那么自动换行,就像html里的flow,可以用来做导航栏
GroupBox:依然是容器,拥有Panel全部属性,比Panel多了个标题和边框样式
TabControl:选项卡容器,点击一个选项出现一个单独的部分
SplitContainer:二分区容器,就是两个panel,panel范围用户可以拖动,可以设置为横向(orientation),可以多个镶嵌
TableLayoutPanel:表格容器,每个单元格里只能放置一个控件,要想方多个控件要在单元格里放一个panel.
--------------------------------
打印控件:
PrintDocument:要打印的对象,非常重要,没有打印对象是不能进行打印和打印预览的,因为
程序不知道你要打印什么东西,它只会去找这个要打印的对象
你所要做的事情,就是将要打印的内容绘制到这个打印对象上去
使用时要先引用命名空间using System.Drawing;
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
Font f=new Font("宋体",17);
SolidBrush b=new SolidBrush(Color.Blue);
e.Graphics.DrawString(textBox1.Text, f, b, 1, 1);//绘制字符串,字体,颜色,起始位置
}
PageSetupDialog:打印设置对话框,直接show不出来,需要一个pagesetupdialog对象,要先设置PageSetupDialog.Document属性
private void 打印设置ToolStripMenuItem_Click(object sender, EventArgs e)
{
pageSetupDialog1.Document = printDocument1;
pageSetupDialog1.ShowDialog();
}
PrintPreviewControl:打印预览控件,与打印预览对话框差不多,不如打印预览对话框好用
PrintPreviewDialog:打印预览对话框
private void 打印预览VToolStripMenuItem_Click(object sender, EventArgs e)
{
printPreviewDialog1.Document = printDocument1;
printPreviewDialog1.ShowDialog();
}
会出现一个对话框,对话框大小可调,可以看到打印内容
--------------------------------------------------------
PrintDialog:打印对话框
printPreviewDialog1.Document = printDocument1;
DialogResult dr = printDialog1.ShowDialog();
if (dr == DialogResult.OK)//如果用户点击的是确定按钮,那么执行打印
{
printDocument1.Print();
}
DialogResult是一个可被实例化的枚举类,用来接收用户在对话框中的操作
对话框控件:
colorDialog - 颜色选择对话框
首先实例化一个 DialogResult对象来接收。
DialogResult dr = colorDialog1.ShowDialog();//让对话框显示出来
if (dr == DialogResult.OK)
{
textBox1.ForeColor = colorDialog1.Color;
}
folderBrowserDialog - 文件路径选择对话框
folderBrowserDialog1.ShowDialog();
toolStripSeparator4.Text = folderBrowserDialog1.SelectedPath;
只会显示文件夹,文件夹里的内容不显示
fontDialog - 字体选择对话框
fontDialog1.ShowDialog();//显示对话框
textBox1.Font = fontDialog1.Font;
textBox1.ForeColor = fontDialog1.Color;
openFileDialog - 打开文件对话框
openFileDialog1.Filter = "文本文件.txt|*.txt|视频文件|*.avi|所有文件|*.*";//可选择的文件的格式
openFileDialog1.Filter = "文本文档|*.txt";
DialogResult dr= openFileDialog1.ShowDialog();
if (dr == DialogResult.OK)
{
toolStripSeparator5.Text = openFileDialog1.FileName;
StreamReader sr = new StreamReader(openFileDialog1.FileName, System.Text.Encoding.Default);//。这里实例化一个读取流,前边参数是路径后面参数是本机默认编码,如果不设置可能出现乱码。
textBox1.Text= sr.ReadToEnd();
sr.Close();//跟数据库一样一次只能打开一个所以用完要关闭。
}
saveFileDialog - 保存文件对话框
string path = "";//定义一个变量记录保存位置
private void 保存SToolStripMenuItem_Click(object sender, EventArgs e)
{
if (path == "")//第一次保存该文档
{
saveFileDialog1.FileName = "新建文本文档.txt";//设置默认保存文件名
DialogResult dr = saveFileDialog1.ShowDialog();//显示对话框
if (dr == DialogResult.OK)
{
toolStripSeparator3.Text = saveFileDialog1.FileName;
StreamWriter sw = new StreamWriter(saveFileDialog1.FileName);//实例化一个写入流
sw.Write(textBox1.Text);
sw.Close();
path = saveFileDialog1.FileName;
}
}
else
{
StreamWriter sw = new StreamWriter(path);
sw.Write(textBox1.Text);
sw.Close();
MessageBox.Show("保存成功");
}
}
绝对路径:带盘符的 G:\0720\...输入进去是可以直接找到该路径下的文件的
相对路径:根据你当前程序的目录下,找到某个文件夹 /css/css1.css
流:IO
就像水管里的水,也就是数据,以10101的形式传输。
StreamReader - 读取流 sr.ReadToEnd();
StreamWriter - 输出流 sw.Write(要输出的内容);