C# 對話框使用大全

對話框中咱們經常使用瞭如下幾種:
一、文件對話框(FileDialog) 它又經常使用到兩個:
   打開文件對話框(OpenFileDialog)
   保存文件對話(SaveFileDialog)
二、字體對話框(FontDialog)
三、顏色對話框(ColorDialog)
四、打印預瀏對話框(PrintPreviewDialog)
五、頁面設置(PrintDialog)
六、打印對話框(PrintDialog)
  還有更多,有時間的網友能夠看看MSDN。下面咱們一個個來介紹。在介紹的過程當中我用到了一個本身開發的類:File,主要是文件操做的。

  文件對話框(FileDialog)

  1、打開文件對話框(OpenFileDialog)

  一、 OpenFileDialog控件有如下基本屬性html

InitialDirectory 對話框的初始目錄
Filter 要在對話框中顯示的文件篩選器,例如,"文本文件(*.txt)|*.txt|全部文件(*.*)||*.*"
FilterIndex 在對話框中選擇的文件篩選器的索引,若是選第一項就設爲1
RestoreDirectory 控制對話框在關閉以前是否恢復當前目錄
FileName 第一個在對話框中顯示的文件或最後一個選取的文件
Title 將顯示在對話框標題欄中的字符
AddExtension 是否自動添加默認擴展名
CheckPathExists 在對話框返回以前,檢查指定路徑是否存在
DefaultExt 默認擴展名
DereferenceLinks 在從對話框返回前是否取消引用快捷方式
ShowHelp 啓用"幫助"按鈕
ValiDateNames 控制對話框檢查文件名中是否不含有無效的字符或序列

  二、 OpenFileDialog控件有如下經常使用事件編程

FileOk 當用戶點擊"打開"或"保存"按鈕時要處理的事件
HelpRequest 當用戶點擊"幫助"按鈕時要處理的事件

  三、OpenFileDialog的效果以下:windows

  能夠用如下代碼來實現上面這個對話框:網絡

void openFileDialogBTN_Click(o b j e c t sender, System.EventArgs e) new OpenFileDialog();
openFileDialog.InitialDirectory="c://";//注意這裏寫路徑時要用c://而不是c:/
openFileDialog.Filter="文本文件|*.*|C#文件|*.cs|全部文件|*.*";
openFileDialog.RestoreDirectory=true;
openFileDialog.FilterIndex=1;
if (openFileDialog.ShowDialog()==DialogResult.OK)
File fileOpen=new File(fName);
isFileHaveName=true;
richTextBox1.Text=fileOpen.ReadFile();
richTextBox1.AppendText("");
}

其中有用到了File()這個類,是我在程序用來執行文件操做,本身寫的,在最後附了這個類的源碼。有興趣的網友能夠本身分析。字體

  2、保存文件對話框(SaveFileDialog)

  保存文件對話框控件有兩種狀況,一就是保存,二就是另存爲,保存很簡單,就是在文件已經打開的狀況下的,再把文件寫一篇,在這裏咱們主要講另存爲 的狀況(SaveAs)。

  1,SaveFileDialog控件的屬性this

Filter 要在對話框中顯示的文件篩選器,例如,"文本文件(*.txt)|*.txt|全部文件(*.*)|*.*"
FilterIndex 在對話框中選擇的文件篩選器的索引,若是選第一項就設爲1
RestoreDirectory 控制對話框在關閉以前是否恢復當前目錄
AddExtension 是否自動添加默認擴展名
CheckFileExists  
CheckPathExists 在對話框返回以前,檢查指定路徑是否存在
Container 控制在將要建立文件時,是否提示用戶。只有在ValidateNames爲真值時,才適用。
DefaultExt 缺省擴展名
DereferenceLinks 在從對話框返回前是否取消引用快捷方式
FileName 第一個在對話框中顯示的文件或最後一個選取的文件
InitialDirector 對話框的初始目錄
OverwritePrompt 控制在將要在改寫如今文件時是否提示用戶,只有在ValidateNames爲真值時,才適用
ShowHelp 啓用"幫助"按鈕
Title 將顯示在對話框標題欄中的字符
ValidateNames 控制對話框檢查文件名中是否不含有無效的字符或序列

  二、SaveFileDialog事件以下:

url

FileOk 當用戶點擊"打開"或"保存"按鈕時要處理的事件
HelpRequest 當用戶點擊"幫助"按鈕時要處理的事件

 

  三、SaveFileDialog的效果以下:spa

  四、用下例代碼能夠實現.net

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

  其實這些均可以在VS.NET的IDE環境中直接完成,爲了說明問題,我仍是一條條列也來了。當中用到了一個File的類庫,下面是源程序:
  File.csorm

using System.IO;
using System.Windows.Forms;
using System.Text;

namespace dialog
/**//// 
/// Summary description for File.
/// 
public class File
public File(string fileName)
}

public string ReadFile()
{
StreamReader sr=new StreamReader(fileName,Encoding.Default);
string result=sr.ReadToEnd();
sr.Close();
return result;
}
catch(Exception e)return null;
}

public void WriteFile(string str)
{
StreamWriter sw=new StreamWriter(fileName,false,Encoding.Default);
sw.Write(str);
sw.Close();
}
catch(Exception e)}
}
}

字體對話框(FontDialog)

  在文字處理中,咱們經常使用到字體,如今咱們來作一個最多見的字體對話框。

  1、 字體對話框(FontDialog)經常使用屬性

ShowColor 控制是否顯示顏色選項
AllowScriptChange 是否顯示字體的字符集
Font 在對話框顯示的字體
AllowVerticalFonts 是否可選擇垂直字體
Color 在對話框中選擇的顏色
FontMustExist 當字體不存在時是否顯示錯誤
MaxSize 可選擇的最大字號
MinSize 可選擇的最小字號
ScriptsOnly 顯示排除OEM和Symbol字體
ShowApply 是否顯示"應用"按鈕
ShowEffects 是否顯示下劃線、刪除線、字體顏色選項
ShowHelp 是否顯示"幫助"按鈕

  2、 字體對話框(FontDialog)的事件

Apply 當點擊"應用"按鈕時要處理的事件
HelpRequest 當點擊"幫助"按鈕時要處理的事件

  3、 字體對話框(FontDialog)的效果

  4、 實現代碼

void fontDialogBTN_Click(o b j e c t sender, System.EventArgs e)
new FontDialog();
fontDialog.Color=richTextBox1.ForeColor;
fontDialog.AllowScriptChange=true;
fontDialog.ShowColor=true;
if(fontDialog.ShowDialog()!=DialogResult.Cancel)
//將當前選定的文字改變字體
}
}

上面代碼將選定的文本設置爲當前FontDialog對話框中的字體。

  顏色對話框(ColorDialog)

  顏色拾取框也是咱們常見的對話框之一,下面咱們來看看在C#中是如何操做顏色對話框的呢?

  1、 顏色對話框(ColorDialog)的常見屬性

AllowFullOpen 禁止和啓用"自定義顏色"按鈕
FullOpen 是否最早顯示對話框的"自定義顏色"部份
ShowHelp 是否顯示"幫助"按鈕
Color 在對話框中顯示的顏色
AnyColor 顯示可選擇任何顏色
CustomColors 是否顯示自定義顏色
SolidColorOnly 是否只能選擇純色

  2、 顏色對話框(ColorDialog)的效果以下:

  3、 實現代碼見下:

void colorDialogBTN_Click(o b j e c t sender, System.EventArgs e)
new ColorDialog();
colorDialog.AllowFullOpen=true;
colorDialog.FullOpen=true;
colorDialog.ShowHelp=true;
colorDialog.Color=Color.Black;//初始化當前文本框中的字體顏色,當用戶在ColorDialog對話框中點擊"取消"按鈕
file://恢復原來的值
colorDialog.ShowDialog();
richTextBox1.SelectionColor=colorDialog.Color;
}

  實現顏色對話框(ColorDialog)很容易吧,其實不僅是顏色對話框,C#也是很容易的,只要用心去學,都容易的。講完了顏色對話框(ColorDialog),咱們 來說打印和頁面設置.

頁面設置(PageSetupDialog)

  其實頁面設置(PageSetupDialog)沒有太多的講,既然講到這裏,我仍是把PageSetupDialog中經常使用的屬性列出來吧

  1、頁面設置(PageSetupDialog)常見屬性  
AllowMargins 設置是否能夠對邊距的編輯
AllowOrientation 是否可使用"方向"單選框
AllowPaper 設置是否能夠對紙張大小的編輯
AllowPrinter 設置是否可使用"打印機"按鈕
Document 獲取打印機設置的PrintDocument
MinMargins 容許用戶選擇的最小邊距

  2、面設置(PageSetupDialog)的效果以下

  就這麼簡單啦,咱們看看下面的吧,還有更重磅的東東呢?關於打印的。

  打印預瀏及打印

  打印是咱們在windows編程中常要用到的功能,在之前都是很麻煩工做,但在Microsoft .net Framework中打印是以組件提供給咱們使用,不過仍是點麻煩的,因此就專門寫出來,供你們參改。

  一, 在.net環境中,說到打印,就不能不說PrintDocumet這個類,PrintDocument屬於System.Drawing.Printing這個名字空間,PrintDocument這個類是 實現打印的核心代碼。

  若是要實現打印,就必需首先構造PrintDocument對象添加打印事件,
printDocument.PrintPage+=new PrintPageEventHandler(this.printDocument_PrintPage)
打印其實也是調用Graphics類的方法進行畫圖,下面這代碼是根據MSDN上提供的例程改寫的。MSDN打印例程地址:

  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemDrawingPrintingPrintDocumentClassTopic.asp ,有興趣的網友能夠參改一下。

  下面是我改寫的printDocument_PrintPage:

 

void printDocument_PrintPage(o b j e c t sender, System.Drawing.Printing.PrintPageEventArgs e)
//頁面的行號
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 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;
}

  在這裏能夠完成整個打印任務。把printDocument_PrintPage構造好後,就能夠打印和打印預瀏。

  2、打印預瀏對話框(PrintPreviewDialog)

  打印預瀏控件是用來顯示一個打印文檔在打印後的效果。在打印預瀏對話框中包含有,打印、縮放、單頁或多頁、關閉等按鈕。對話框以下:

  打印預瀏對話框沒有太多的屬性,最後經過ShowDialog()調用。上面的實現代碼以下:

 

void printPreviewBTN_Click(o b j e c t sender, System.EventArgs e)
new StringReader(richTextBox1.Text);
try
new PrintPreviewDialog();
printPreviewDialog1.Document=printDocument;
printPreviewDialog1.FormBorderStyle=FormBorderStyle.Fixed3D;
printPreviewDialog1.ShowDialog(this);
}
catch(Exception excep)
return;
}
}

  很簡單的,只要你把PrintDocument_PrintPage()寫好了,這裏就很容易了。

  3、打印對話框(PrintDialog)

  一、打印對話框(PrintDialog)只要有如下屬性:

AllowPrintToFile 禁止或使用"打印到文件"複選框
AllowSelection 禁止或使用"選定內容"單選框
AllowSomePages 禁止或使用"頁"單選按鈕
Document 從中獲取打印機設置的PrintDocument
PrintToFile 打印到文件"複選框是否選中
ShowHelp 控制是否顯示"幫助"按鈕
ShowNetWork 控制是否顯示"網絡"按鈕

  二、效果以下:

  三、用以下代碼來實現:



  在咱們的教程,共講述了文件對話框(FileDialog)、字體對話框(FontDialog)、,顏色對話框(ColorDialog)、打印預瀏對話框(PrintPreviewDialog)、頁面 設置(PrintDialog)、打印對話框(PrintDialog),這幾個對話框,其中文件對話框(FileDialog)又有:打開文件對話框(OpenFileDialog)、保存文件對話(SaveFi leDialog)這兩個對話框。有了上述基礎,你們能夠很容易的寫出一個簡單的記事本。

void printDialogBTN_Click(o b j e c t sender, System.EventArgs e)
new PrintDialog();
printDialog.Document=printDocument;
if(printDialog.ShowDialog()!=DialogResult.Cancel)
{
printDocument.Print();
}
catch(Exception ex)
}
}
}
相關文章
相關標籤/搜索