自己編寫了一個記事本程序,記事本程序使用WinForm的RichTextBox控件實現。這個程序在Windows記事本的基礎上添加了改變記事本背景顏色,設置記事本背景圖片、改變記事本字體顏色和樣式的功能。同時,還想在記事本中添加相關圖片,而RichTextBox控件并沒有提供添加圖片功能,于是在網上找了一些資料,根據這些資料終于實現了這個功能。
因為RichTextBox控件在運行過程中允許往里粘貼圖片等內容,于是網上的解決方案大多是借助這一特點而實現的。其實現的基本思想如下:
(1)將要添加的圖片保存到剪貼板中,這主要借助Clipboard類的SetDataObject方法
(2)將剪貼板中的內容粘貼到RichTextBoxBox控件中,這主要使用RichTextBox控件的Paste方法。
設計步驟:
(1)定義打開文件通用對話框的實例:
OpenFileDialog openJpgDialog = new OpenFileDialog();
(2)指定打開文件通用對話框的相關屬性:
openJpgDialog.Filter = "JPG圖片(*.jpg,*.jpeg)|*.jpg|BMP圖片(*.bmp)|*.bmp|GIF圖片(*.gif)|*.gif|PNG圖片|*.png"; //設置文件名的篩選字符串
openJpgDialog.FilterIndex = 0; //設置對話框默認的文件類型索引
openJpgDialog.RestoreDirectory = true; //關閉對話框后,回到原有文件路徑
openJpgDialog.Multiselect = false; //不允許選擇多個圖片
(3)打開通用對話框,并將選擇的圖片插入到當前RichTextBox中:
if (openJpgDialog.ShowDialog() == DialogResult.OK)
{
filePath = openJpgDialog.FileName;
Image img = Image.FromFile(filePath);
Clipboard.SetDataObject(img);
richTextBox1.Paste(DataFormats.GetFormat(DataFormats.Bitmap));
}
完整的源代碼如下:
string filePath;
OpenFileDialog openJpgDialog = new OpenFileDialog();
openJpgDialog.Filter = "JPG圖片(*.jpg,*.jpeg)|*.jpg|BMP圖片(*.bmp)|*.bmp|GIF圖片(*.gif)|*.gif|PNG圖片|*.png";
openJpgDialog.FilterIndex = 0;
openJpgDialog.RestoreDirectory = true;
openJpgDialog.Multiselect = false;
if (openJpgDialog.ShowDialog() == DialogResult.OK)
{
filePath = openJpgDialog.FileName;
Image img = Image.FromFile(filePath);
Clipboard.SetDataObject(img);
richTextBox1.Paste(DataFormats.GetFormat(DataFormats.Bitmap));
}
以上代碼是寫在菜單點擊事件處理程序中。運行結果如下:
我的記事本:插入圖片菜單
我的記事本插入圖片效果
新聞熱點
疑難解答