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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

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

發(fā)布時(shí)間:2023/12/1 C# 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# winform对话框用法大全收藏 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

對(duì)話框中我們常用了以下幾種:

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

   打開(kāi)文件對(duì)話框(OpenFileDialog)

   保存文件對(duì)話(SaveFileDialog)

2、字體對(duì)話框(FontDialog)

3、顏色對(duì)話框(olorDialog)

4、打印預(yù)瀏對(duì)話框(PrintPreviewDialog)

5、頁(yè)面設(shè)置(PrintDialog)

6、打印對(duì)話框(PrintDialog)

  還有更多,有時(shí)間的網(wǎng)友可以看看MSDN。下面我們一個(gè)個(gè)來(lái)介紹。在介紹的過(guò)程中我用到了一個(gè)自己開(kāi)發(fā)的類:File,主要是文件操作的。

?

  文件對(duì)話框(FileDialog)

?

  一、打開(kāi)文件對(duì)話框(OpenFileDialog)

?

  1 OpenFileDialog控件有以下基本屬性

?

InitialDirectory 對(duì)話框的初始目錄

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

FilterIndex 在對(duì)話框中選擇的文件篩選器的索引,如果選第一項(xiàng)就設(shè)為1

RestoreDirectory 控制對(duì)話框在關(guān)閉之前是否恢復(fù)當(dāng)前目錄

FileName 第一個(gè)在對(duì)話框中顯示的文件或最后一個(gè)選取的文件

Title 將顯示在對(duì)話框標(biāo)題欄中的字符

AddExtension 是否自動(dòng)添加默認(rèn)擴(kuò)展名

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

DefaultExt 默認(rèn)擴(kuò)展名

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

ShowHelp 啟用"幫助"按鈕

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

?

  2 OpenFileDialog控件有以下常用事件

?

?

FileOk 當(dāng)用戶點(diǎn)擊"打開(kāi)""保存"按鈕時(shí)要處理的事件

HelpRequest 當(dāng)用戶點(diǎn)擊"幫助"按鈕時(shí)要處理的事件

?

  3OpenFileDialog的效果如下:

?

?

?

  可以用以下代碼來(lái)實(shí)現(xiàn)上面這個(gè)對(duì)話框:

?

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

OpenFileDialog openFileDialog=newOpenFileDialog();

openFileDialog.InitialDirectory="c:\\";//注意這里寫(xiě)路徑時(shí)要用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()這個(gè)類,是我在程序用來(lái)執(zhí)行文件操作,自己寫(xiě)的,在最后附了這個(gè)類的源碼。有興趣的網(wǎng)友可以自己分析。

?

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

?

  保存文件對(duì)話框控件有兩種情況,一就是保存,二就是另存為,保存很簡(jiǎn)單,就是在文件已經(jīng)打開(kāi)的情況下的,再把文件寫(xiě)一篇,在這里我們主要講另存為的情況(SaveAs)

?

  1SaveFileDialog控件的屬性

?

?

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

FilterIndex 在對(duì)話框中選擇的文件篩選器的索引,如果選第一項(xiàng)就設(shè)為1

RestoreDirectory 控制對(duì)話框在關(guān)閉之前是否恢復(fù)當(dāng)前目錄

AddExtension 是否自動(dòng)添加默認(rèn)擴(kuò)展名

CheckFileExists?

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

Container 控制在將要?jiǎng)?chuàng)建文件時(shí),是否提示用戶。只有在ValidateNames為真值時(shí),才適用。

DefaultExt 缺省擴(kuò)展名

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

FileName 第一個(gè)在對(duì)話框中顯示的文件或最后一個(gè)選取的文件

InitialDirector 對(duì)話框的初始目錄

OverwritePrompt 控制在將要在改寫(xiě)現(xiàn)在文件時(shí)是否提示用戶,只有在ValidateNames為真值時(shí),才適用

ShowHelp 啟用"幫助"按鈕

Title 將顯示在對(duì)話框標(biāo)題欄中的字符

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

?

  2SaveFileDialog事件如下:

?

?

?

FileOk 當(dāng)用戶點(diǎn)擊"打開(kāi)""保存"按鈕時(shí)要處理的事件

HelpRequest 當(dāng)用戶點(diǎn)擊"幫助"按鈕時(shí)要處理的事件

?

?

  3SaveFileDialog的效果如下:

?

?

?

  4、用下例代碼可以實(shí)現(xiàn)

?

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

}

}

}

  其實(shí)這些都可以在VS.NETIDE環(huán)境中直接完成,為了說(shuō)明問(wèn)題,我還是一條條列也來(lái)了。當(dāng)中用到了一個(gè)File的類庫(kù),下面是源程序:

 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,"保存文件出錯(cuò)!");}

}

}

}

字體對(duì)話框(FontDialog)

?

  在文字處理中,我們常用到字體,現(xiàn)在我們來(lái)做一個(gè)最常見(jiàn)的字體對(duì)話框。

?

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

?

ShowColor 控制是否顯示顏色選項(xiàng)

AllowScriptChange 是否顯示字體的字符集

Font 在對(duì)話框顯示的字體

AllowVerticalFonts 是否可選擇垂直字體

Color 在對(duì)話框中選擇的顏色

FontMustExist 當(dāng)字體不存在時(shí)是否顯示錯(cuò)誤

MaxSize 可選擇的最大字號(hào)

MinSize 可選擇的最小字號(hào)

ScriptsOnly 顯示排除OEMSymbol字體

ShowApply 是否顯示"應(yīng)用"按鈕

ShowEffects 是否顯示下劃線、刪除線、字體顏色選項(xiàng)

ShowHelp 是否顯示"幫助"按鈕

?

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

?

Apply 當(dāng)點(diǎn)擊"應(yīng)用"按鈕時(shí)要處理的事件

HelpRequest 當(dāng)點(diǎn)擊"幫助"按鈕時(shí)要處理的事件

?

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

?

?

  四、實(shí)現(xiàn)代碼

?

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;//將當(dāng)前選定的文字改變字體

}

}

上面代碼將選定的文本設(shè)置為當(dāng)前FontDialog對(duì)話框中的字體。

?

  顏色對(duì)話框(ColorDialog)

?

  顏色拾取框也是我們常見(jiàn)的對(duì)話框之一,下面我們來(lái)看看在C#中是如何操作顏色對(duì)話框的呢?

?

  一、顏色對(duì)話框(ColorDialog)的常見(jiàn)屬性

?

?

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

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

ShowHelp 是否顯示"幫助"按鈕

Color 在對(duì)話框中顯示的顏色

AnyColor 顯示可選擇任何顏色

CustomColors 是否顯示自定義顏色

SolidColorOnly 是否只能選擇純色

?

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

?

?

?

  三、實(shí)現(xiàn)代碼見(jiàn)下:

?

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;//初始化當(dāng)前文本框中的字體顏色,當(dāng)用戶在ColorDialog對(duì)話框中點(diǎn)擊"取消"按鈕

file://恢復(fù)原來(lái)的值

colorDialog.ShowDialog();

richTextBox1.SelectionColor=colorDialog.Color;

}

  實(shí)現(xiàn)顏色對(duì)話框(ColorDialog)很容易吧,其實(shí)不只是顏色對(duì)話框,C#也是很容易的,只要用心去學(xué),都容易的。講完了顏色對(duì)話框(ColorDialog),我們來(lái)講打印和頁(yè)面設(shè)置.

?

頁(yè)面設(shè)置(PageSetupDialog)

?

  其實(shí)頁(yè)面設(shè)置(PageSetupDialog)沒(méi)有太多的講,既然講到這里,我還是把PageSetupDialog中常用的屬性列出來(lái)吧

?

  一、頁(yè)面設(shè)置(PageSetupDialog)常見(jiàn)屬性 

AllowMargins 設(shè)置是否可以對(duì)邊距的編輯

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

AllowPaper 設(shè)置是否可以對(duì)紙張大小的編輯

AllowPrinter 設(shè)置是否可以使用"打印機(jī)"按鈕

Document 獲取打印機(jī)設(shè)置的PrintDocument

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

?

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

  就這么簡(jiǎn)單啦,我們看看下面的吧,還有更重磅的東東呢?關(guān)于打印的。

?

  打印預(yù)瀏及打印

?

  打印是我們?cè)?span style="font-family:Calibri;">windows編程中常要用到的功能,在以前都是很麻煩工作,但在Microsoft .net Framework中打印是以組件提供給我們使用,不過(guò)還是點(diǎn)麻煩的,所以就專門寫(xiě)出來(lái),供大家參改。

?

  一,在.net環(huán)境中,說(shuō)到打印,就不能不說(shuō)PrintDocumet這個(gè)類,PrintDocument屬于System.Drawing.Printing這個(gè)名字空間,PrintDocument這個(gè)類是實(shí)現(xiàn)打印的核心代碼。

?

  如果要實(shí)現(xiàn)打印,就必需首先構(gòu)造PrintDocument對(duì)象添加打印事件,

printDocument.PrintPage+=newPrintPageEventHandler(this.printDocument_PrintPage)

打印其實(shí)也是調(diào)用Graphics類的方法進(jìn)行畫(huà)圖,下面這代碼是根據(jù)MSDN上提供的例程改寫(xiě)的。MSDN打印例程地址:

?

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

?

  下面是我改寫(xiě)的printDocument_PrintPage:

?

?

?

?

private void printDocument_PrintPage(o b je c t sender, System.Drawing.Printing.PrintPageEventArgs e)

{

float linesPerPage=0;//頁(yè)面的行號(hào)

float yPos=0;//打印字符串的縱向位置

int count=0;//行計(jì)數(shù)器

float leftMargin =e.MarginBounds.Left;//左邊距

float topMargin=e.MarginBounds.Top;//上邊距

string line=null;//行字符串

Color clr=richTextBox1.SelectionColor;//當(dāng)前的打印顏色,在我這個(gè)程序沒(méi)有實(shí)現(xiàn)不同顏色打印

SolidBrush b =new SolidBrush(clr);//刷子

fnt=richTextBox1.SelectionFont;//當(dāng)前的打印字體

linesPerPage=e.MarginBounds.Height/fnt.GetHeight(e.Graphics);//每頁(yè)可打印的行數(shù)

file://逐行循行打印一頁(yè)

while(count {

yPos=topMargin+(count*fnt.GetHeight(e.Graphics));

e.Graphics.DrawString(line,fnt,b,leftMargin,yPos,newStringFormat());

count++;

}

file://如果該頁(yè)打印完成而line不為空說(shuō)明還有沒(méi)完成的頁(yè)面,發(fā)出下一次的打印事件,

file://在下一次的打印中lineReader會(huì)自動(dòng)讀取上次沒(méi)有打印完的內(nèi)容。lineReader可以記錄當(dāng)前讀取的位置

if(line!=null)

e.HasMorePages=true;

else

e.HasMorePages=false;

}

  在這里可以完成整個(gè)打印任務(wù)。把printDocument_PrintPage構(gòu)造好后,就可以打印和打印預(yù)瀏。

?

  二、打印預(yù)瀏對(duì)話框(PrintPreviewDialog)

  打印預(yù)瀏控件是用來(lái)顯示一個(gè)打印文檔在打印后的效果。在打印預(yù)瀏對(duì)話框中包含有,打印、縮放、單頁(yè)或多頁(yè)、關(guān)閉等按鈕。對(duì)話框如下:

?

?

  打印預(yù)瀏對(duì)話框沒(méi)有太多的屬性,最后通過(guò)ShowDialog()調(diào)用。上面的實(shí)現(xiàn)代碼如下:

?

?

?

?

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, "打印出錯(cuò)",MessageBoxButtons.OK, MessageBoxIcon.Error);

return;

}

}

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

?

  三、打印對(duì)話框(PrintDialog)

?

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

?

?

AllowPrintToFile 禁止或使用"打印到文件"復(fù)選框

AllowSelection 禁止或使用"選定內(nèi)容"單選框

AllowSomePages 禁止或使用"頁(yè)"單選按鈕

Document 從中獲取打印機(jī)設(shè)置的PrintDocument

PrintToFile 打印到文件"復(fù)選框是否選中

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

ShowNetWork 控制是否顯示"網(wǎng)絡(luò)"按鈕

?

  2、效果如下:

?

  3、用如下代碼來(lái)實(shí)現(xiàn):

?

?

?

?

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

?

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

}

}

}

總結(jié)

?

?

?

?

?

本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/rxzgh/archive/2008/09/27/2988483.aspx

轉(zhuǎn)載于:https://www.cnblogs.com/java20130723/archive/2012/07/12/3211523.html

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费大片黄在线观看视频网站 | 97一区二区三区 | 91综合在线| 91免费观看视频在线 | 激情综合亚洲 | 日本成人在线视频网站 | 国产精品系列在线观看 | 91丨九色丨蝌蚪丨对白 | 国内毛片毛片毛片毛片 | 全部毛片永久免费看 | 日本精品一区在线观看 | 免费黄色一级视频 | 涩涩的视频在线观看 | 日本成人在线免费视频 | 久久伊人免费 | 成人黄色免费网站 | 77久久 | 国产真实偷伦视频 | www.亚洲色图| 国产区一区二 | 欧美亚洲日本国产 | 欧美撒尿777hd撒尿 | 国产91精品一区二区麻豆亚洲 | 一区二区欧美在线观看 | 国产精品一卡二卡 | 久久国产精品无码一级毛片 | 国产亚洲欧美精品久久久www | 日韩免费精品 | 成人午夜毛片 | 椎名空在线 | 91激情网| 国产精品人人人人 | 久久这里只有精品首页 | 国产亚洲色婷婷久久99精品91 | 2019国产精品视频 | 婷婷.com| 国产第一区第二区 | 色一情一乱一区二区三区 | 日本高清不卡在线观看 | 亚洲AV蜜桃永久无码精品性色 | jizzjizz亚洲| 国产在线观看成人 | 97精品自拍 | 亚洲av成人精品一区二区三区在线播放 | 爽爽影院在线免费观看 | 色婷婷色婷婷 | 狠狠躁夜夜躁xxxxaaaa | 性一交一乱一伧老太 | 美女天天操 | 欧美老女人bb | 天堂视频一区二区 | 欧美影院一区 | 成人无码精品1区2区3区免费看 | 光棍影院一区二区 | 色眯眯网 | 二区在线观看 | 岛国av噜噜噜久久久狠狠av | 一区二区三区精品国产 | 黄色一级片免费看 | 日本69熟| 中文字幕人妻无码系列第三区 | 国产麻豆一精品一av一免费 | 成人淫片| 久草视频在 | 中国老头性行为xxxx | 日本精品一区二区三区在线观看 | 日少妇的逼 | 欧亚av在线 | 欧美一区二区三区久久 | 日韩欧美www| 国产精品第二页 | 春色影视| 非洲黑人毛片 | 精品国产一二三四区 | 各种含道具高h调教1v1男男 | 成人亚洲精品久久久久软件 | 精品肉丝脚一区二区三区 | 男人操女人网站 | 99精品视频在线免费观看 | 国产又色又爽又黄的 | 精品91自产拍在线观看二区 | 深夜视频免费在线观看 | 日韩美女视频一区二区 | 假日游船法国满天星 | 先锋影音av资源网站 | 日韩精品视频免费在线观看 | 日韩免费福利 | 精品黄色片 | 亚洲国产精品成人av | www亚洲| www久久久天天com | av毛片基地 | 日韩国产小视频 | 3p在线播放 | 亚洲av女人18毛片水真多 | 欧美私人情侣网站 | 天堂中文av在线 | 精品一区二区在线观看视频 | 久久久ww |