C#中代码Dialog控件实现(打开,保存,改变字体,颜色,打印功能)

打印|控件

打开:

private void openFileDialogBTN_Click(object sender, System.EventArgs e){
OpenFileDialog openFileDialog=new OpenFileDialog();
openFileDialog.InitialDirectory="c:\\";//注意这里写路径时要用c:\\而不是c:openFileDialog.Filter="文本文件|*.*|C#文件|*.cs|所有文件|*.*";
openFileDialog.RestoreDirectory=true;
openFileDialog.FilterIndex=1;
if (openFileDialog.ShowDialog()==DialogResult.OK)
{ fName=openFileDialog.FileName;
File fileOpen=new File(fName);
isFileHaveName=true;
richTextBox1.Text=fileOpen.ReadFile();
richTextBox1.AppendText("");
} }

保存:

private void saveAsDialogBTN_Click(object sender, System.EventArgs e)
{ SaveFileDialog saveFileDialog=new SaveFileDialog();
saveFileDialog.Filter="文本文件|*.*|C#文件|*.cs|所有文件|*.*";
saveFileDialog.FilterIndex=2;
saveFileDialog.RestoreDirectory=true;
if(saveFileDialog.ShowDialog()==DialogResult.OK)
{ if(saveFileDialog.ShowDialog()==DialogResult.OK)
{ fName=saveFileDialog.FileName;
File fSaveAs=new File(fName);
isFileHaveName=true; file://保存的文件有名字
fSaveAs.WriteFile(richTextBox1.Text);
} }
}

改变字体大小

private void fontDialogBTN_Click(object sender, System.EventArgs e)
{ FontDialog fontDialog=new FontDialog();
fontDialog.Color=richTextBox1.ForeColor;
fontDialog.AllowScriptChange=true;
fontDialog.ShowColor=true;
if(fontDialog.ShowDialog()!=DialogResult.Cancel)
{ richTextBox1.SelectionFont=fontDialog.Font;//将当前选定的文字改变字体
} }

改变字体颜色:

private void colorDialogBTN_Click(object sender, System.EventArgs e)
{ ColorDialog colorDialog=new ColorDialog();
colorDialog.AllowFullOpen=true;
colorDialog.FullOpen=true;
colorDialog.ShowHelp=true;
colorDialog.Color=Color.Black;//初始化当前文本框中的字体颜色,当用户在ColorDialog对话框中点击"取消"按钮
file://恢复原来的值
colorDialog.ShowDialog();
richTextBox1.SelectionColor=colorDialog.Color;
}

打印:

private void printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{ float linesPerPage=0;//页面的行号
float yPos=0;//打印字符串的纵向位置
int count=0;//行计数器
float leftMargin =e.MarginBounds.Left;//左边距
float topMargin=e.MarginBounds.Top;//上边距
string line=null;//行字符串
Color clr=richTextBox1.SelectionColor;//当前的打印颜色,在我这个程序没有实现不同颜色打印
SolidBrush b =new SolidBrush(clr);//刷子
fnt=richTextBox1.SelectionFont;//当前的打印字体
linesPerPage=e.MarginBounds.Height/fnt.GetHeight(e.Graphics);//每页可打印的行数
file://逐行循行打印一页
while(count {
yPos=topMargin+(count*fnt.GetHeight(e.Graphics));
e.Graphics.DrawString(line,fnt,b,leftMargin,yPos,new StringFormat());
count++;
} file://如果该页打印完成而line不为空说明还有没完成的页面,发出下一次的打印事件,
file://在下一次的打印中lineReader会自动读取上次没有打印完的内容。lineReader可以记录当前读取的位置
if(line!=null)
e.HasMorePages=true;
else
e.HasMorePages=false;
}

private void printPreviewBTN_Click(object sender, System.EventArgs e)
{ lineReader = new StringReader(richTextBox1.Text);
try
{ PrintPreviewDialog printPreviewDialog1=new PrintPreviewDialog();
printPreviewDialog1.Document=printDocument;
printPreviewDialog1.FormBorderStyle=FormBorderStyle.Fixed3D;
printPreviewDialog1.ShowDialog(this);
} catch(Exception excep)
{ MessageBox.Show(excep.Message, "打印出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
} }

private void printDialogBTN_Click(object sender, System.EventArgs e)
{ PrintDialog printDialog=new PrintDialog();
printDialog.Document=printDocument;
if(printDialog.ShowDialog()!=DialogResult.Cancel)
{ try
{ printDocument.Print();
} catch(Exception ex)
{ MessageBox.Show(ex.Message);
} }
}

时间: 2024-12-30 16:44:20

C#中代码Dialog控件实现(打开,保存,改变字体,颜色,打印功能)的相关文章

winform中的webbrowser控件,打开网页遇到跨域js就报错。高分求解

问题描述 由于js报错,用winform中的webbrowse打开的网页与ie打开的网页不一至,有些根本打不开,影响使用.只要网页中有跨域的js调用就会报错,求解决方法.不要说屏蔽错误,屏蔽了网页还是不正常.希望与IE显示一致.偿试将IE安全级别降到最低,并添加信任站点,还是不行.这是报错的图片示例 解决方案 解决方案二:可以试一下,关闭脚本调试解决方案三:关闭脚本调试黄色是警告不是错误.安全警告,即将跨域浏览.差不多是这个意思.解决方案四:你用IE打开这个页面,会报错吗?解决方案五:IE打开是

C#winform中如何用控件webBrowser打开pdf文件?

问题描述 我的编码是usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;namespace_11{publicpartialclassForm1:Form{publicForm1(){InitializeCompon

请问ListView控件中的checkbox控件如何触发selectchanged事件?

问题描述 我在listview控件中放了一个checkbox控件,但是这个checkbox控件没有selectchanged这样的触发事件,网上查了说好像是什么因为checkbox控件的事件优先级高于listview控件,所以被屏蔽了,具体搞不清,请问怎样才能在listview控件中的checkbox控件的选中状态改变时,触发相应的事件?因为我想做一个功能,点击标题部的checkbox的时候能改变列表内容部分的checkbox的选中状态 解决方案 解决方案二:WinFrom?WebFrom?那就

jQuery UI Dialog控件中的表单无法正常提交的解决方法_jquery

最近使用jQuery UI的Dialog控件时发现如果在此控件放置表单,则所有表单均无法正常提交,具体表现为: 1.提交按钮失效,点击后无任何反应. 2.即便是使用其它手段使页面产生提交,服务器端也无法取到Dialog中的表单数据. 研究了页面源码后发现,jQuery UI Dialog控件初始化时动态生成的HTML元素被添加到页面的尾部.form元素的后面,而原始的Dialog模板部分(其内包含表单元素)也被移到了 动态生成的HTML元素内.也就是说,原先在form内的表单在Dialog初始化

MFC中, win764位的代码在控件上面显示汉字没问题, 但是到了win732系统显示汉字为乱码

问题描述 MFC中, win764位的代码在控件上面显示汉字没问题, 但是到了win732系统显示汉字为乱码 MFC中, win764位的代码在控件上面显示汉字没问题, 但是到了win732系统显示汉字为乱码, 解决方案 的代码在控件上面显示汉字没问题, 但是到了win732系统显示汉字为 解决方案二: 乱码是编码的问题,为什么还和系统有关系呢?来点运行截图 解决方案三: 不知道你用的什么版本的vs,建议查一下代码里面是不是有硬编码,因为32位系统里很多数据类型占的字节数都是不一样的. 解决方案

对话框-vfp中使用webbrowse控件打开本地文件,怎么拦截下载窗口?

问题描述 vfp中使用webbrowse控件打开本地文件,怎么拦截下载窗口? 一个小程序,需要把word格式的文件在控件中打开,我选用了webbrowse控件,但每次打开,总会出现"下载"对话框,请问各位高手,该怎么拦截?谢谢! 解决方案 监听WebBrowser.FileDownload 事件参考WebBrowser.FileDownload 事件.aspx) 解决方案二: 监听WebBrowser.FileDownload 事件 参考:https://msdn.microsoft.

asp.net中的文件上传控件能否打开一个固定文件夹然后再选择文件

问题描述 asp.net中的文件上传控件能否打开一个固定文件夹然后再选择文件asp.net中的文件上传控件能否打开一个固定文件夹然后再选择文件我现在要上传文件,但是在点击浏览的时候我想要打开一个指定的目录,然后在这个目录中选择文件..用什么方法能够实现呢?请各位大侠帮忙呀!!!!!!!!!??????????????????????????谢谢各位!!!!!!!! 解决方案 解决方案二:属于客户端程序,安全考虑的话怕不可行解决方案三:可以,将所选目录文件列出就行了,用常用的IO操作就能实现CSD

怎么用代码msgbox出 窗体中每一个控件的类型

问题描述 怎么用代码msgbox出窗体中每一个控件的类型DimconstrAsControlForEachconstrInMe.GroupBox1.ControlsMsgBox()NextMSGBOX中代码怎么写?谢谢了 解决方案 解决方案二:constr.gettype.tostring谢谢了,会了,呵呵解决方案三:该回复于2012-03-26 11:04:52被版主删除解决方案四:是啊,有时自己琢磨也能解决问题.解决方案五:该回复于2012-03-26 09:10:27被版主删除

在form1中,点击Button让在Form2中的pictureBox控件移动的C#例子代码

问题描述 在form1中,点击Button让在Form2中的pictureBox控件移动的C#例子代码我菜鸟一枚,向高手请教 解决方案 解决方案二:form1中如果有全局的form2对象,就直接在form2里写个方法就行了.如果不是,那么你可以自己学习一下c#的委托解决方案三:用委托,早晚要了解的,你去百度一下委托的用法.