前言
我們在winform開發(fā)中經(jīng)常有這類需求:我們需要將文件,比如txt文件的所有內(nèi)容復制到 RichTextBox控件上,或者需要將txt文件的某一行內(nèi)容移動到 RichTextBox控件上,這些功能是怎么實現(xiàn)的呢?請接著往下看。
博主履歷介紹:
本人2017年碩士畢業(yè),行業(yè)經(jīng)驗六年+,一直在自動化行業(yè)從事上位機軟件開發(fā)的工作,當然運動控制和機器視覺也廣泛涉及,目前也是以高級軟件工程師的職位任職,薪資我就不方便透露了,你可以去招聘網(wǎng)站去查上位機高級軟件工程師的薪資范圍(只能說至少兩萬月薪Base),可以說理論和實戰(zhàn)經(jīng)驗都比較豐富,所以我的經(jīng)驗對學習c#的尤其自動化行業(yè)的人極具參考價值,可以說如果掌握了我的博客所有文章,你也可以達到甚至超越我的水平,也祝愿大家都能通過自己的努力找到理想的工作!
本篇文章是我經(jīng)過多年實戰(zhàn)經(jīng)驗總結(jié)的博客專欄《winform控件從入門到精通》系列文章中的一篇介紹如何用幾行代碼給winform多個控件(數(shù)量無上限)賦值文章,如果需要系統(tǒng)的了解winform控件開發(fā),請訂閱專欄《winform控件從入門到精通》,限時19.9元(一頓外賣),原創(chuàng)不易,敬請諒解!本專欄會對winform中所有控件進行介紹,包括控件的屬性和事件,重點是我會將控件所有屬性和事件進行介紹,并且也會在專欄中增加一些案例來幫助想學習winform控件的程序員來鞏固以及練習如何靈活的運用控件的各種特性來實現(xiàn)不同的功能,所以該專欄文章既包含了入門內(nèi)容,也包含了進階內(nèi)容,對于想學習winform控件開發(fā)的程序員來說這絕對是一份非常詳細的資料,您也可以將其作為自己的字典,需要使用某個功能的時候來查閱即可,當然如果您發(fā)現(xiàn)我的文章中有您需要的功能,但是我沒有進行介紹,您可以在我的博客中留言,我會及時更新該功能,感謝大家一直以來的支持!
**訂閱《winform控件從入門到精通》專欄的vip成員還可享受以下增值服務:
1)進入VIP群和眾多學員一起交流學習winform,c#,找工作等
2)博主會上傳一些免費的學習資料幫助大家學習,比如本篇博文說的上位機源碼、《c#圖解教程》、《c#本質(zhì)論》的電子書籍、串口助手的源碼等
3)如果遇到學習困難還可在群里@博主來幫助你
關于所有控件的訪問鏈接如下:
1、Winform從入門到精通(27)——Label(詳細版本)
2、Winform從入門到精通(2)——Button(史上最全)
3、Winform從入門到精通(3)——Form(史上最全)
4、Winform從入門到精通(4)——Textbox(史上最全)
#5、Winform從入門到精通(5)——checkBox(史上最全)
6、Winform從入門到精通(6)——radioButton(史上最全)
7、Winform從入門到精通(7)——ComboBox(史上最全)
8、Winform從入門到精通(8)——richTextBox(史上最全)
9、Winform從入門到精通(9)——ListBox(史上最全)
10、Winform從入門到精通(10)——CheckedListBox(史上最全)
11、Winform從入門到精通(11)——numericUpDown(史上最全)
12、Winform從入門到精通(12)——LinkLabel(史上最全)
13、Winform從入門到精通(13)——DateTimePicker(史上最全)
14、Winform從入門到精通(14)——NotifyIcon(史上最全)
15、Winform從入門到精通(15)——contextMenuStrip(史上最全)
16、Winform從入門到精通(16)——Timer(史上最全)
17、Winform從入門到精通(17)——PictureBox(史上最全)
18、Winform從入門到精通(18)——Chart(史上最全)
19、Winform從入門到精通(19)——DataGridView(史上最全)
20、Winform從入門到精通(20)——TableLayoutPanel(史上最全
21、Winform從入門到精通(21)——ProgressBar(史上最全)
22、Winform從入門到精通(22)——Panel(史上最全)
23、Winform從入門到精通(23)——FlowLayoutPanel(史上最全)
24、 Winform從入門到精通(24)——GroupBox(史上最全)
25、Winform從入門到精通(25)——SplitContainer(史上最全)
26、Winform從入門到精通(26)——TabControl(史上最全)
27、Winform從入門到精通(28)——ToolTip(史上最全)
28、Winform從入門到精通(29)——MaskedTextBox(史上最全)
29、Winform從入門到精通(30)——MonthCalendar(史上最全)
30、Winform從入門到精通(31)——TreeView(史上最全)
31、Winform從入門到精通(32)——MenuStrip(史上最全)
32、Winform從入門到精通(33)——OpenFileDialog(史上最全)
33、Winform從入門到精通(34)——SaveFileDialog(史上最全)
34、Winform從入門到精通(35)——FontDialog(史上最全)
35、Winform從入門到精通(36)——ColorDialog(史上最全)
36、Winform從入門到精通(37)——FolderBrowserDialog(史上最全)
下面進入正題:
一、將txt文件的所有內(nèi)容復制到 RichTextBox中
先選中test.txt文件,按下鼠標左鍵,然后按下"ctrl"鍵,拖動文件到form1窗體上
在上圖中可以看到我將text.txt文件的路徑拖到了“文件名列表”中,這樣我可以通過這個文件名將test.txt文件中的內(nèi)容全部讀取到
二、將txt文件的一行內(nèi)容移動到RichTextBox中
先選中”c#軟件工“,然后按下鼠標左鍵,然后按下"shift"鍵,拖動文本到form1窗體上
在上圖中可以看到我將文本”c#軟件工“這幾個字移動到了form1窗體上
三、將多個文件的全路徑復制到 RichTextBox中
先按下ctrl鍵,選中兩個txt文件,然后鼠標拖到form1窗體上
從上圖可以看出,兩個txt文本的路徑都被存到了“文件列表中”。
四 、源碼
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.AllowDrop = true;//允許將數(shù)據(jù)拖放到form1上
this.DragEnter += RichTextBox1_DragEnter;//注冊對象拖入form1的邊界時發(fā)生
this.DragDrop += RichTextBox1_DragDrop;//注冊拖放操作完成時發(fā)生
}
private void RichTextBox1_DragDrop(object sender, DragEventArgs e)
{
try
{
richTextBox_Content.Clear();
richTextBox_DataType.Clear();
richTextBox_FileList.Clear();
List<string> fileNames = new List<string>();
Type t = typeof(DataFormats);
FieldInfo[] info = t.GetFields();//獲取對象的所有字段
foreach (FieldInfo item in info)
{
string itemName = item.Name;//獲取字段名稱
fileNames.Add(itemName);
}
foreach (string item in fileNames)//判斷拖入的對象是什么類型,并輸出到richTextBox_DataType中
{
if (e.Data.GetDataPresent(item))
{
string tempStr = string.Concat(item,"\r\n");
richTextBox_DataType.AppendText(tempStr);
}
}
if (e.Data.GetDataPresent(DataFormats.FileDrop))//如果拖入的對象是個文件,則將所有文件路徑輸出到richTextBox_FileList中
{
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
foreach (string item in files )
{
string tempStr = string.Concat(item, "\r\n");
richTextBox_FileList.AppendText(tempStr);
}
}
if (e.Data.GetDataPresent(DataFormats.Text))//如果拖入的對象是個文本,則將文本內(nèi)容輸出到richTextBox_Content中
{
string str = e.Data.GetData(DataFormats.Text).ToString();
richTextBox_Content.AppendText(str);
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message );
}
}
private void RichTextBox1_DragEnter(object sender, DragEventArgs e)
{
DragDropEffects dragDropEffects = e.AllowedEffect;//獲取拖到事件的發(fā)起方(源)所支持的操作
if((e.KeyState &8)==8&& (dragDropEffects& DragDropEffects.Copy)== DragDropEffects.Copy )//如果ctrl鍵被按下,并且源支持復制,則復制源到目標
{
e.Effect = DragDropEffects.Copy;
}
else if((e.KeyState & 4) == 4 && (dragDropEffects & DragDropEffects.Move ) == DragDropEffects.Move)//如果shift鍵被按下,并且源支持移動,則移動源到目標
{
e.Effect = DragDropEffects.Move ;
}
else
{
e.Effect = DragDropEffects.None;//ctrl鍵和shift鍵這兩個鍵都沒有被按下則,拖放目標不接受數(shù)據(jù),DragDrop事件也不會觸發(fā)
}
}
}
老鐵們,以后再遇到這種需要拖文件的場景是不是一點也不慌了?哈哈!如果你也想做到“控件心中過,界面自然成”的境界,請關注我的博客專欄《winform控件從入門到精通》,更多控件的訪問鏈接如下:
點擊鏈接即可轉(zhuǎn)到該控件的詳細介紹:文章來源:http://www.zghlxwxcb.cn/news/detail-702875.html
1、Winform從入門到精通(1)——(如何年入30萬+)
2、Winform從入門到精通(2)——Button(史上最全)
3、Winform從入門到精通(3)——Form(史上最全)
4、Winform從入門到精通(4)——Textbox(史上最全)
5、Winform從入門到精通(5)——checkBox(史上最全)
6、Winform從入門到精通(6)——radioButton(史上最全)
7、Winform從入門到精通(7)——ComboBox(史上最全)
8、Winform從入門到精通(8)——richTextBox(史上最全)
9、Winform從入門到精通(9)——ListBox(史上最全)
10、Winform從入門到精通(10)——CheckedListBox(史上最全)
11、Winform從入門到精通(11)——numericUpDown(史上最全)
12、Winform從入門到精通(12)——LinkLabel(史上最全)
13、Winform從入門到精通(13)——DateTimePicker(史上最全)
14、Winform從入門到精通(14)——NotifyIcon(史上最全)
15、Winform從入門到精通(15)——contextMenuStrip(史上最全)
16、Winform從入門到精通(16)——Timer(史上最全)
17、Winform從入門到精通(17)——PictureBox(史上最全)
18、Winform從入門到精通(18)——Chart(史上最全)
19、Winform從入門到精通(19)——DataGridView(史上最全)
20、Winform從入門到精通(20)——TableLayoutPanel(史上最全
21、Winform從入門到精通(21)——ProgressBar(史上最全)
22、Winform從入門到精通(22)——Panel(史上最全)
23、Winform從入門到精通(23)——FlowLayoutPanel(史上最全)
24、 Winform從入門到精通(24)——GroupBox(史上最全)
25、Winform從入門到精通(25)——SplitContainer(史上最全)
26、Winform從入門到精通(26)——TabControl(史上最全)
27、Winform從入門到精通(27)——Label(史上最全)
28、Winform從入門到精通(28)——ToolTip(史上最全)
29、Winform從入門到精通(29)——MaskedTextBox(史上最全)
30、Winform從入門到精通(30)——MonthCalendar(史上最全)
31、Winform從入門到精通(31)——TreeView(史上最全)
32、Winform從入門到精通(32)——MenuStrip(史上最全)
33、Winform從入門到精通(33)——OpenFileDialog(史上最全)
34、Winform從入門到精通(34)——SaveFileDialog(史上最全)
35、Winform從入門到精通(35)——FontDialog(史上最全)
36、Winform從入門到精通(36)——ColorDialog(史上最全)
37、Winform從入門到精通(37)——FolderBrowserDialog(史上最全)
更多控件持續(xù)更新中文章來源地址http://www.zghlxwxcb.cn/news/detail-702875.html
到了這里,關于手把手教你在winform中將文本或文件路徑拖到控件中的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!