打印:

打印对话框:printdialog
页面设置:pagesetupdialog
这两个对话框都需要通过设置printdocument来指定打印对象
printdocument:打印对象,必须要有,一块画板,用于打印机与打印内容之间中转,打印机打印的是printdoment
printDocument1_PrintPage:事件,每打印一页之前触发,用于给printdocument指定打印内容
通过画板把内容画到打印对象的页上:
System.Drawing.Font f = new System.Drawing.Font("宋体",12);
e.Graphics.DrawString(textBox1.Text,f,System.Drawing.Brushes.Aqua,5,5);
最后打印: 打印对话框那,如果打印对话框返回确定打印,就执行printdocument.print();

看一下打印界面

下面是打印界面的代码 (点击小加号打开)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
string username = textBox1.Text;
string upass = textBox2.Text;
//连接数据库
SqlConnection conn = new SqlConnection("server=.;database=data1220;user=sa;pwd=123");
conn.Open();
//执行语句
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select * from users where uname='" + username + "'and upass='" + upass + "'";
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
//MessageBox.Show(dr["uname"].ToString());
MessageBox.Show("登陆成功"); }
else
{
MessageBox.Show("登录失败");
}
conn.Close();
} private void button2_Click(object sender, EventArgs e)
{
//添加数据到数据库 string username = textBox1.Text;
string upass = textBox2.Text; //连接数据库
SqlConnection conn = new SqlConnection("server=.;database=data1220;user=sa;pwd=123");
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "insert into users values ('" + username + "'," + upass + ") ";
int count = cmd.ExecuteNonQuery();//增删改
if (count > )
{
MessageBox.Show("添加成功");
}
else
{
MessageBox.Show("添加失败");
}
conn.Close();
} private void button3_Click(object sender, EventArgs e)
{
string code = textBox3.Text;
string uname = textBox1.Text;
string upass = textBox2.Text;
//连接数据库
SqlConnection conn = new SqlConnection("server=.;database=data1220;user=sa;pwd=123");
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "update users set uname='" + uname + "',upass='" + upass + "'where code=" + code;
int count = cmd.ExecuteNonQuery(); if (count > )
{
MessageBox.Show("修改成功");
}
else
{
MessageBox.Show("修改失败");
}
conn.Close();
} private void button4_Click(object sender, EventArgs e)
{
string code = textBox3.Text;
//连接数据库
SqlConnection conn = new SqlConnection("server=.;database=data1220;user=sa;pwd=123");
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "delete from user where code=" + code;
cmd.ExecuteNonQuery();
conn.Close();
} }
}

打印的 代码

WindowsForm 打印的更多相关文章

  1. c# windowsForm打印

    在windows应用程序中文档的打印是一项非常重要的功能,在以前一直是一个非常复杂的工作,Microsoft .net Framework的打 印功能都以组件的方式提供,为程序员提供了很大的方便,但是 ...

  2. WindowsForm如何实现类似微软project软件的甘特图?

    在管理软件研发过程中,特别是涉及项目管理或者生产计划方面,都需要一款类似微软project的控件对项目下的分解任务进行图形展示(甘特图).下面介绍一下在WindowsForm下如何实现类似微软proj ...

  3. PrintDocument打印、预览、打印机设置和打印属性的方法

    WindowsForm 使用 PrintDocument打印.预览.打印机设置和打印属性的方法. private void Form1_Load(object sender, System.Event ...

  4. ASP.NET MVC5+EF6+EasyUI 后台管理系统(55)-Web打印

    系列目录 前言 1.本次主要弥补工作流,用户表单数据的打印 2.使用JQprint做为web打印插件 3.兼容:FireFox,Chrome,IE. 4.没有依赖也没有配置,使用简单 代码下载:htt ...

  5. C#中5步完成word文档打印的方法

    在日常工作中,我们可能常常需要打印各种文件资料,比如word文档.对于编程员,应用程序中文档的打印是一项非常重要的功能,也一直是一个非常复杂的工作.特别是提到Web打印,这的确会很棘手.一般如果要想选 ...

  6. 开源免费且稳定实用的.NET PDF打印组件itextSharp(.NET组件介绍之八)

    在这个.NET组件的介绍系列中,受到了很多园友的支持,一些园友(如:数据之巅. [秦时明月]等等这些大神 )也给我提出了对应的建议,我正在努力去改正,有不足之处还望大家多多包涵.在传播一些简单的知识的 ...

  7. Ajax使用WCF实现小票pos机打印源码

    通过ajax跨域方式调用WCF服务,实现小票pos机的打印,源码提供web方式,客户端方式测试,服务驻留右侧底部任务栏,可控制服务开启暂停,用户可自定义小票打印模板,配合零售录入. qq  22945 ...

  8. Jqprint实现页面打印

    好些项目需要实现页面打印,特别是一些后台管理类系统,下面介绍一款轻量级的打印插件: 1.实现页面打印要引入jQuery和Jqprint.点击下载Jqprint插件 <script languag ...

  9. Android连接网络打印机进行打印

    首先这是网络打印工具类,通过Socket实现,多说一句,网络打印机端口号一般默认的是9100 package com.Ieasy.Tool; import android.annotation.Sup ...

随机推荐

  1. js基础-需要注意的地方

    ---因为跟别的语言很像,所以只记录要注意的地方 1.== 和 === 的区别 ===要求类型也相等 "5"==5 = ture "5"===5 = false ...

  2. linux android ndk

    Android调用so库, so库是c语言编写, 在linux 64位系统+ndk(32位)生成 lib*.so (32位) 1. 所需软件环境: 1)so库开发环境 操作系统: Redhat Ser ...

  3. Python中的Copy和Deepcopy

    一,Python的对象: Python存在大量的对象,我们一般提到的对象都是C中的结构体在堆中申请的一块内存(以CPython为例),每一个对象都有ID,可以通过ID(Object)获得.对象的范围包 ...

  4. 添加jar

    file->project structure->'+'添加jar 在.gradle中配置

  5. [C++程序设计]函数模板

    定义函数模板的一般形 式为 template < typename T> 或 template <class T> 函数模板: 函数参数个数,函数体相同.参数类型不同 函数重载 ...

  6. 磁盘管理三-raid

    前言:何为raid raid是利用多个磁盘组成一个可提升效能.可包含冗余的磁盘阵列组.常用于数据吞吐量大(视频),冗余要求高的场景 当前raid包含了raid0-7,以及组合方式raid10,raid ...

  7. 大端模式&小端模式、主机序&网络序、入栈地址高低问题

    一.大端模式&小端模式 所谓的“大端模式”,是指数据的低位(就是权值较小的后面那几位)保存在内存的高地址中,而数据的高位,保存在内存的低地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处 ...

  8. KeyTool

    http://ln-ydc.iteye.com/blog/1335213 http://lukejin.iteye.com/blog/605634

  9. T-SQL 脚本

    1.USE语句 USE语句用于设置当前数据库,如果没有USE语句,那么就由执行脚本的任何用户来确定执行脚本时当前数据库是正确的.如果只是一个通用脚本,那么省去USE语句实际上可能更有益.通常,如果在脚 ...

  10. uva 101 by sixleaves

    这是一道很好的模拟题,用vector<int> p[maxn],建立模型,映射为maxn个堆.主要要掌握vector模拟堆操作的简单方法.接下来得思路是自顶向下的方式,逐步完善程序.首先根 ...