case 1 :
this.button2.Image.Save(fs,ImageFormat.Jpeg);
break;
case 2 :
this.button2.Image.Save(fs,ImageFormat.Bmp);
break;
case 3 :
this.button2.Image.Save(fs,ImageFormat.Gif);
break;
}
fs.Close();
}
}
关于写入文件流的进一步信息,请参阅 FileStream.BeginWrite 方法。
3.ColorDialog 组件
此对话框显示颜色列表,并且返回所选的颜色。
与前两种对话框不同,ColorDialog 组件很容易实现其主要功能(挑选颜色)。选取的颜色将成为 Color 属性的设定值。因此,使用颜色就和设定属性值一样简单。在下面的例子中,按钮控制的 Click 事件将会开启一个 ColorDialog 组件。一旦用户选中某种颜色,并且单击了 OK ,按钮的背景将被设成所选的颜色。本例假设存在名为 Button1 的 Button 组件和名为 ColorDialog1 的 ColorDialog 组件。
' Visual Basic
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
If ColorDialog1.ShowDialog() = DialogResult.OK Then
Button1.BackColor = ColorDialog1.Color
End If
End Sub
// C#
private void button1_Click(object sender, System.EventArgs e)
{
if(colorDialog1.ShowDialog() == DialogResult.OK)
{
button1.BackColor = colorDialog1.Color;
}
}
ColorDialog 组件具有 AllowFullOpen 属性。当其设为 False 的时候,Define Custom Colors 按钮将会失效,此时用户只能使用预定义的调色板。此外,它还有一个 SolidColorOnly 属性,当其设为 true 时,用户将不能使用抖动颜色。
4.FontDialog 组件
此对话框允许用户选择字体,以改变其 weight 和 size 等属性。
被选中的字体将成为 Font 属性的设定值。因此,使用字体也和设定属性值一样简单。在本例通过 Button 控件的 Click 事件调用 FileDialog 组件。当用户选中一个字体,并且单击 OK 的时候,TextBox 控件的 Font 属性将被设成所选的字体。本例假设存在名为 Button1 的 Button 控件,名为 TextBox1 的 TextBox 控件和名为 FontDialog1 的 FontDialog 组件。
' Visual Basic
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
If FontDialog1.ShowDialog() = DialogResult.OK Then
TextBox1.Font = FontDialog1.Font
End If
End Sub
// C#
private void button1_Click(object sender, System.EventArgs e)
{
if(fontDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Font = fontDialog1.Font;
}
}
FontDialog 元件还包括 MinSize 和 MaxSize 属性,它们决定了允许用户选择的字体的最小和最大点数;还有一个 ShowColor 属性,当其设为 True 时,用户可以从对话框的下拉列表中选取字体的颜色。
5.PrintDocument 类
以下三个会话框,PrintDialog 组件、 PageSetupDialog 组件和 PrintPreviewDialog 控件,都与 PrintDocument 类有关。PrintDocument 类用于文档打印前的设置:设定其属性,以改变文档外观和打印方式,再将其实例输出到打印机。通常的步骤是:
(1) 生成 PrintDocument 类的一个实例;
(2) 设置 PageSetupDialog 组件的属性;
(3) 使用 PrintPreviewDialog 控件进行预览;
(4) 通过 PrintDialog 组件打印出来。
关于 PrintDocument 类的进一步资料,请参阅 PrintDocument Class 。
6.PrintDialog 元件
此对话框允许用户指定将要打印的文档。除此之外,它还能用于选择打印机、决定打印页,以及设置打印相关属性。通过它可以让用户文档打印更具灵活性:他们既能打印整个文档,又能打印某个片断,还能打印所选区域。
使用 PrintDialog 组件时要注意它是如何与 PrinterSettings 类进行交互的。PrinterSettings 类用于设定纸张来源、分辨率和加倍放大等打印机特征属性。每项设置都是 PrinterSettings 类的一个属性。通过 PrintDialog 类可以改变关联到文档的 PrinterSetting 类实例(由PrintDocument.PrinterSettings 指定)的特征属性值。
PrintDialog 组件将包含特征属性设置的 PrintDocument 类的实例提交到打印机。应用 PrintDialog 组件进行文档打印的范例,请参见 Creating Standard Windows Forms Print Jobs。
7.PageSetupDialog 组件
PageSetupDialog 组件用于显示打印布局、纸张大小和其它页面选项。如同其他对话框一样,可以通过 ShowDialog 方法调用 PageSetupDialog 组件。此外,必须生成一个 PrintDocument 类的实例,也即被打印的文档;而且必须安装了一台本地或者远程打印机,否则,PageSetupDialog 组件将无法获取打印格式以供用户选择。
使用 PageSetupDialog 组件时必须注意它是如何与 PageSettings 类进行交互的。PageSettings 类决定页面如何被打印,比如打印方向、页面大小和边距等。每项设置都是 PageSettings 类的一个属性。PageSetupDialog 类可以改变 PageSettings 类实例(由 PrintDocument.DefaultPageSettings 指定)的上述选项。
在下列代码中,Button 控件的 Click 事件处理程序开启一个 PageSetupDialog 组件;其 Document 属性被设成某个存在的文档;其 Color 属性被设成 false 。
本例假设存在名为 Button1 的 Button 控件、名为 myDocument 的 PrintDocument 控件和名为 PageSetupDialog1 的 PageSetupDialog 组件。
' Visual Basic
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
' The print document 'myDocument' used below
' is merely for an example.
'You will have to specify your own print document.
PageSetupDialog1.Document = myDocument
' Set the print document's color setting to false,
' so that the page will not be printed in color.
PageSetupDialog1.Document.DefaultPageSettings.Color = False
PageSetupDialog1.ShowDialog()
End Sub
// C#
private void button1_Click(object sender, System.EventArgs e)
{
// The print document 'myDocument' used below
// is merely for an example.
// You will have to specify your own print document.
pageSetupDialog1.Document = myDocument;
// Set the print document's color setting to false,
// so that the page will not be printed in color.
pageSetupDialog1.Document.DefaultPageSettings.Color = false;
pageSetupDialog1.ShowDialog();
}
8.PrintPreviewDialog 控件
与其他对话框不同,PrintPreviewDialog 控件对整个应用程序或者其它控件没有影响,因为它仅仅在对话框里显示内容。此对话框用于显示文档,主要是打印之前的预览。
调用 PrintPreviewDialog 控件,也是使用 ShowDialog 方法。同时,必须生成 PrintDocument 类的一个实例,也即被打印的文档。
注意:当使用 PrintPreviewDialog 控件时,也必须已经安装了一台本地或者远程打印机,否则 PrintPreviewDialog 组件将无法获取被打印文档的外观。
PrintPreviewDialog 控件通过 PrinterSettings 类和 PageSettings 类进行设置,分别与 PageDialog 组件和 PageSetupDialog 组件相似。此外,PrintPreviewDialog 控件的 Document 属性所指定的被打印文档,同时作用于 PrinterSettings 类和 PageSettings 类,其内容被显示在预览窗口中。
在下列代码中,通过 Button 控件的 Click 事件调用 PrintPreviewDialog 控件。被打印文档在 Document 属性中指定。注意:代码中没有指定被打印文档。
本例假设存在名为 Button1 的 Button 控件,名为 myDocument 的 PrintDocument 组件和名为 PrintPreviewDialog1 的 PrintPreviewDialog 控件。
' Visual Basic
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
' The print document 'myDocument' used below
' is merely for an example.
' You will have to specify your own print document.
PrintPreviewDialog1.Document = myDocument
PrintPreviewDialog1.ShowDialog()
End Sub
// C#
private void button1_Click(object sender, System.EventArgs e)
{
// The print document 'myDocument' used below
// is merely for an example.
// You will have to specify your own print document.
printPreviewDialog1.Document = myDocument;
printPreviewDialog1.ShowDialog()
}
小结
.NET 框架里包含了 Windows 用户所熟悉的各种公共对话框,于是在应用程序中提供交互功能变得更加容易。通常,对话框的用途是多种多样的;.NET 框架对此提供了开放支持,你可以选择最佳方案以适合应用程序的需要。我们介绍了与对话框组件有关的一些简单应用。你可以直接使用这些代码,也可以对其稍加修改用于你的应用程序。
文章来源于领测软件测试网 https://www.ltesting.net/