日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# winform对话框用法大全收藏

發布時間:2023/12/1 C# 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# winform对话框用法大全收藏 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

對話框中我們常用了以下幾種:

1、文件對話框(FileDialog) 它又常用到兩個:

   打開文件對話框(OpenFileDialog)

   保存文件對話(SaveFileDialog)

2、字體對話框(FontDialog)

3、顏色對話框(olorDialog)

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

5、頁面設置(PrintDialog)

6、打印對話框(PrintDialog)

  還有更多,有時間的網友可以看看MSDN。下面我們一個個來介紹。在介紹的過程中我用到了一個自己開發的類:File,主要是文件操作的。

?

  文件對話框(FileDialog)

?

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

?

  1 OpenFileDialog控件有以下基本屬性

?

InitialDirectory 對話框的初始目錄

Filter 要在對話框中顯示的文件篩選器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)||*.*"

FilterIndex 在對話框中選擇的文件篩選器的索引,如果選第一項就設為1

RestoreDirectory 控制對話框在關閉之前是否恢復當前目錄

FileName 第一個在對話框中顯示的文件或最后一個選取的文件

Title 將顯示在對話框標題欄中的字符

AddExtension 是否自動添加默認擴展名

CheckPathExists 在對話框返回之前,檢查指定路徑是否存在

DefaultExt 默認擴展名

DereferenceLinks 在從對話框返回前是否取消引用快捷方式

ShowHelp 啟用"幫助"按鈕

ValiDateNames 控制對話框檢查文件名中是否不含有無效的字符或序列

?

  2 OpenFileDialog控件有以下常用事件

?

?

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

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

?

  3OpenFileDialog的效果如下:

?

?

?

  可以用以下代碼來實現上面這個對話框:

?

private void openFileDialogBTN_Click(o b je c t sender, System.EventArgs e){

OpenFileDialog openFileDialog=newOpenFileDialog();

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("");

}

}

其中有用到了File()這個類,是我在程序用來執行文件操作,自己寫的,在最后附了這個類的源碼。有興趣的網友可以自己分析。

?

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

?

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

?

  1SaveFileDialog控件的屬性

?

?

Filter 要在對話框中顯示的文件篩選器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"

FilterIndex 在對話框中選擇的文件篩選器的索引,如果選第一項就設為1

RestoreDirectory 控制對話框在關閉之前是否恢復當前目錄

AddExtension 是否自動添加默認擴展名

CheckFileExists?

CheckPathExists 在對話框返回之前,檢查指定路徑是否存在

Container 控制在將要創建文件時,是否提示用戶。只有在ValidateNames為真值時,才適用。

DefaultExt 缺省擴展名

DereferenceLinks 在從對話框返回前是否取消引用快捷方式

FileName 第一個在對話框中顯示的文件或最后一個選取的文件

InitialDirector 對話框的初始目錄

OverwritePrompt 控制在將要在改寫現在文件時是否提示用戶,只有在ValidateNames為真值時,才適用

ShowHelp 啟用"幫助"按鈕

Title 將顯示在對話框標題欄中的字符

ValidateNames 控制對話框檢查文件名中是否不含有無效的字符或序列

?

  2SaveFileDialog事件如下:

?

?

?

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

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

?

?

  3SaveFileDialog的效果如下:

?

?

?

  4、用下例代碼可以實現

?

private void saveAsDialogBTN_Click(o b j ec t sender, System.EventArgs e)

{

SaveFileDialog saveFileDialog=newSaveFileDialog();

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);

}

}

}

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

 File.cs

?

using System;

using System.IO;

using System.Windows.Forms;

using System.Text;

?

namespace dialog

{

/**

/// Summary description for File.

///

public class File

{

string fileName;

public File(string fileName)

{

this.fileName=fileName;

}

?

public string ReadFile()

{

try

{

StreamReader sr=newStreamReader(fileName,Encoding.Default);

string result=sr.ReadToEnd();

sr.Close();

return result;

}

catch(Exceptione){MessageBox.Show(e.Message);}

return null;

}

?

public void WriteFile(string str)

{

try

{

StreamWriter sw=newStreamWriter(fileName,false,Encoding.Default);

sw.Write(str);

sw.Close();

}

catch(Exceptione){MessageBox.Show(e.Message,"保存文件出錯!");}

}

}

}

字體對話框(FontDialog)

?

  在文字處理中,我們常用到字體,現在我們來做一個最常見的字體對話框。

?

  一、字體對話框(FontDialog)常用屬性

?

ShowColor 控制是否顯示顏色選項

AllowScriptChange 是否顯示字體的字符集

Font 在對話框顯示的字體

AllowVerticalFonts 是否可選擇垂直字體

Color 在對話框中選擇的顏色

FontMustExist 當字體不存在時是否顯示錯誤

MaxSize 可選擇的最大字號

MinSize 可選擇的最小字號

ScriptsOnly 顯示排除OEMSymbol字體

ShowApply 是否顯示"應用"按鈕

ShowEffects 是否顯示下劃線、刪除線、字體顏色選項

ShowHelp 是否顯示"幫助"按鈕

?

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

?

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

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

?

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

?

?

  四、實現代碼

?

private void fontDialogBTN_Click(o b j e ct 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;//將當前選定的文字改變字體

}

}

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

?

  顏色對話框(ColorDialog)

?

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

?

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

?

?

AllowFullOpen 禁止和啟用"自定義顏色"按鈕

FullOpen 是否最先顯示對話框的"自定義顏色"部份

ShowHelp 是否顯示"幫助"按鈕

Color 在對話框中顯示的顏色

AnyColor 顯示可選擇任何顏色

CustomColors 是否顯示自定義顏色

SolidColorOnly 是否只能選擇純色

?

  二、顏色對話框(ColorDialog)的效果如下:

?

?

?

  三、實現代碼見下:

?

private void colorDialogBTN_Click(o b j e ct 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;

}

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

?

頁面設置(PageSetupDialog)

?

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

?

  一、頁面設置(PageSetupDialog)常見屬性 

AllowMargins 設置是否可以對邊距的編輯

AllowOrientation 是否可以使用"方向"單選框

AllowPaper 設置是否可以對紙張大小的編輯

AllowPrinter 設置是否可以使用"打印機"按鈕

Document 獲取打印機設置的PrintDocument

MinMargins 允許用戶選擇的最小邊距

?

  二、面設置(PageSetupDialog)的效果如下

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

?

  打印預瀏及打印

?

  打印是我們在windows編程中常要用到的功能,在以前都是很麻煩工作,但在Microsoft .net Framework中打印是以組件提供給我們使用,不過還是點麻煩的,所以就專門寫出來,供大家參改。

?

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

?

  如果要實現打印,就必需首先構造PrintDocument對象添加打印事件,

printDocument.PrintPage+=newPrintPageEventHandler(this.printDocument_PrintPage)

打印其實也是調用Graphics類的方法進行畫圖,下面這代碼是根據MSDN上提供的例程改寫的。MSDN打印例程地址:

?

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

?

  下面是我改寫的printDocument_PrintPage:

?

?

?

?

private void printDocument_PrintPage(o b je c t 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,newStringFormat());

count++;

}

file://如果該頁打印完成而line不為空說明還有沒完成的頁面,發出下一次的打印事件,

file://在下一次的打印中lineReader會自動讀取上次沒有打印完的內容。lineReader可以記錄當前讀取的位置

if(line!=null)

e.HasMorePages=true;

else

e.HasMorePages=false;

}

  在這里可以完成整個打印任務。把printDocument_PrintPage構造好后,就可以打印和打印預瀏。

?

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

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

?

?

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

?

?

?

?

private void printPreviewBTN_Click(o b j ec t sender, System.EventArgs e)

{

lineReader = new StringReader(richTextBox1.Text);

try

{

PrintPreviewDialog printPreviewDialog1=newPrintPreviewDialog();

printPreviewDialog1.Document=printDocument;

printPreviewDialog1.FormBorderStyle=FormBorderStyle.Fixed3D;

printPreviewDialog1.ShowDialog(this);

}

catch(Exception excep)

{

MessageBox.Show(excep.Message, "打印出錯",MessageBoxButtons.OK, MessageBoxIcon.Error);

return;

}

}

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

?

  三、打印對話框(PrintDialog)

?

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

?

?

AllowPrintToFile 禁止或使用"打印到文件"復選框

AllowSelection 禁止或使用"選定內容"單選框

AllowSomePages 禁止或使用""單選按鈕

Document 從中獲取打印機設置的PrintDocument

PrintToFile 打印到文件"復選框是否選中

ShowHelp 控制是否顯示"幫助"按鈕

ShowNetWork 控制是否顯示"網絡"按鈕

?

  2、效果如下:

?

  3、用如下代碼來實現:

?

?

?

?

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

?

private void printDialogBTN_Click(o b j e ct 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);

}

}

}

總結

?

?

?

?

?

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/rxzgh/archive/2008/09/27/2988483.aspx

轉載于:https://www.cnblogs.com/java20130723/archive/2012/07/12/3211523.html

總結

以上是生活随笔為你收集整理的C# winform对话框用法大全收藏的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。