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

歡迎訪問 生活随笔!

生活随笔

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

C#

C#对话框全接触

發(fā)布時間:2025/5/22 C# 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#对话框全接触 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

對話框中我們常用了以下幾種:
1、文件對話框(FileDialog) 它又常用到兩個:
   打開文件對話框(OpenFileDialog)
   保存文件對話(SaveFileDialog)
2、字體對話框(FontDialog)
3、顏色對話框(ColorDialog)
4、打印預瀏對話框(PrintPreviewDialog)
5、頁面設置(PrintDialog)
6、打印對話框(PrintDialog)
  還有更多,有時間的網(wǎng)友可以看看MSDN。下面我們一個個來介紹。在介紹的過程中我用到了一個自己開發(fā)的類:File,主要是文件操作的。

  文件對話框(FileDialog)

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

  1、 OpenFileDialog控件有以下基本屬性

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

  2、 OpenFileDialog控件有以下常用事件

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

  3、OpenFileDialog的效果如下:

  可以用以下代碼來實現(xiàn)上面這個對話框:

private?void?openFileDialogBTN_Click(o?b?j?e?c?t?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(
"");
}

}
?

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

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

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

  1,SaveFileDialog控件的屬性

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

  2、SaveFileDialog事件如下:

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

  3、SaveFileDialog的效果如下:

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

private?void?saveAsDialogBTN_Click(o?b?j?e?c?t?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);
}

}

}
?

  其實這些都可以在VS.NET的IDE環(huán)境中直接完成,為了說明問題,我還是一條條列也來了。當中用到了一個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
=new?StreamReader(fileName,Encoding.Default);
string?result=sr.ReadToEnd();
sr.Close();
return?result;
}

catch(Exception?e){MessageBox.Show(e.Message);}
return?null;
}


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

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

}

}

字體對話框(FontDialog)

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

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

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

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

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

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

  四、 實現(xiàn)代碼

private?void?fontDialogBTN_Click(o?b?j?e?c?t?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)的效果如下:

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

private?void?colorDialogBTN_Click(o?b?j?e?c?t?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;
}

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

頁面設置(PageSetupDialog)

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

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

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

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

  打印預瀏及打印

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

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

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

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

  下面是我改寫的printDocument_PrintPage:

?

private?void?printDocument_PrintPage(o?b?j?e?c?t?sender,?System.Drawing.Printing.PrintPageEventArgs?e)
{
float?linesPerPage=0;//頁面的行號
float?yPos=0;//打印字符串的縱向位置
int?count=0;//行計數(shù)器
float?leftMargin?=e.MarginBounds.Left;//左邊距
float?topMargin=e.MarginBounds.Top;//上邊距
string?line=null;//行字符串
Color?clr=richTextBox1.SelectionColor;//當前的打印顏色,在我這個程序沒有實現(xiàn)不同顏色打印
SolidBrush?b?=new?SolidBrush(clr);//刷子
fnt=richTextBox1.SelectionFont;//當前的打印字體
linesPerPage=e.MarginBounds.Height/fnt.GetHeight(e.Graphics);//每頁可打印的行數(shù)
file://逐行循行打印一頁
while(count?{
yPos
=topMargin+(count*fnt.GetHeight(e.Graphics));
e.Graphics.DrawString(line,fnt,b,leftMargin,yPos,
new?StringFormat());
count
++;
}

file:
//如果該頁打印完成而line不為空說明還有沒完成的頁面,發(fā)出下一次的打印事件,
file://在下一次的打印中l(wèi)ineReader會自動讀取上次沒有打印完的內(nèi)容。lineReader可以記錄當前讀取的位置
if(line!=null)
e.HasMorePages
=true;
else
e.HasMorePages
=false;
}

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

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

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

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

?

private?void?printPreviewBTN_Click(o?b?j?e?c?t?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;
}

}

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

  三、打印對話框(PrintDialog)

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

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

  2、效果如下:

  3、用如下代碼來實現(xiàn):

private?void?printDialogBTN_Click(o?b?j?e?c?t?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é)

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

轉(zhuǎn)載于:https://www.cnblogs.com/060218/archive/2009/11/20/1607071.html

總結(jié)

以上是生活随笔為你收集整理的C#对话框全接触的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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