วิธีใช้ OpenFileDialog ในแอปพลิเคชัน C# GUI

Withi Chi Openfiledialog Ni Xaepphlikhechan C Gui



การสร้างแอปพลิเคชันกราฟิกด้วย C# และเฟรมเวิร์ก Windows Forms เป็นหนึ่งในวิธีที่ดีที่สุดในการขยายทักษะ C# ของคุณ เช่นเดียวกับรูปแบบการเขียนโปรแกรมอื่นๆ ในที่สุดคุณจะพบว่าตัวเองกำลังสร้างแอปพลิเคชันที่ทำงานกับไฟล์ได้

ในบทช่วยสอนนี้ เราจะแสดงให้คุณเห็นพื้นฐานการทำงานกับแอปพลิเคชัน Windows Graphical โดยการเรียนรู้วิธีสร้างแอปที่สามารถอ่านไฟล์ได้ด้วยการคลิกปุ่ม







เราจะมุ่งเน้นไปที่ OpenFileDialog เป็นหลักซึ่งช่วยให้เราสามารถเรียกดูและเลือกไฟล์จากระบบไฟล์ได้ เป็นส่วนหนึ่งของเนมสเปซ System.Windows.Forms ดังนั้น คุณจะต้องติดตั้งเครื่องมือ WFP



การสร้างโครงการ

ก่อนที่เราจะใช้คอมโพเนนต์ OpenFileDialog เราจำเป็นต้องสร้างโปรเจ็กต์ที่รองรับ Windows Forms คุณสามารถทำตามขั้นตอนตามที่ระบุไว้ต่อไปนี้ได้โดยใช้ Visual Studio 2022 ขึ้นไป



เปิดตัว Visual Studio 2022 และเลือกตัวเลือก 'สร้างโครงการใหม่'






ในขั้นตอนถัดไป เลือกเทมเพลตโครงการที่คุณต้องการใช้ ในกรณีของเรา เราต้องการสร้างแอป Windows Forms เลือกเทมเพลตนี้


ในขั้นตอนถัดไป เลือกเวอร์ชัน NET ของคุณและระบุชื่อสำหรับโปรเจ็กต์ของคุณ



การเพิ่มปุ่ม

เมื่อคุณสร้างโปรเจ็กต์แล้ว Visual Studio จะนำคุณไปยังเครื่องมือแก้ไขแบบลากและวางซึ่งคุณสามารถลากส่วนประกอบที่คุณต้องการได้

ในกรณีของเรา สิ่งแรกที่เราต้องการคือปุ่มที่เรียกใช้ OpenFileDialog จากเมนูกล่องเครื่องมือ ให้ลากและวางปุ่มลงบนผืนผ้าใบ


เปลี่ยนคุณสมบัติข้อความของปุ่มเป็น 'เปิดไฟล์'

ปุ่มคลิกตัวจัดการเหตุการณ์

ในขณะนี้ ปุ่มจะไม่ทำอะไรเลยเมื่อคลิก เพื่อให้แน่ใจว่าปุ่มเปิด OpenFileDialog เราจำเป็นต้องเพิ่มตัวจัดการเหตุการณ์

ดับเบิลคลิกที่ปุ่มหรือกด F7 เพื่อเปิดตัวแก้ไขโค้ด


ในตัวจัดการเหตุการณ์ของปุ่ม เพิ่มรหัสต่อไปนี้เพื่อเริ่มต้นและเปิด OpenFileDialog:

ปุ่มโมฆะส่วนตัว1_คลิก ( ผู้ส่งวัตถุ EventArgs เช่น )
{
โดยใช้ ( OpenFileDialog openFileDialog = OpenFileDialog ใหม่ ( ) )
{
ถ้า ( openFileDialog.ShowDialog ( ) == DialogResult.ตกลง )
{
สตริงที่เลือกไฟล์ = openFileDialog.FileName;
MessageBox.แสดง ( 'ไฟล์ที่เลือก:' + ไฟล์ที่เลือก ) ;
}
}
}


ในตัวอย่างที่กำหนด เราเริ่มต้นด้วยการสร้างอินสแตนซ์ของคลาส OpenFileDialog นอกจากนี้เรายังใช้คำสั่ง 'การใช้' เพื่อให้แน่ใจว่ามีการกำจัดอย่างเหมาะสมเมื่อการดำเนินการเสร็จสิ้นเพื่อหลีกเลี่ยงการสิ้นเปลืองทรัพยากร

จากนั้นเราจะตรวจสอบว่าผู้ใช้ได้ยืนยันการเลือกไฟล์หรือไม่โดยคลิกปุ่ม 'ตกลง'

สุดท้าย เราดึงเส้นทางแบบเต็มของเส้นทางที่เลือกและแสดงภายในส่วนประกอบ MessageBox

ลองรันโค้ดดูว่ามันทำอะไรได้บ้าง ในกรณีของเรา โค้ดอนุญาตให้เราเปิดตัวเลือกไฟล์โดยขึ้นอยู่กับการคลิกปุ่ม และแสดงเส้นทางไปยังไฟล์ที่เลือกดังนี้:

การเลือกประเภทไฟล์เฉพาะ

คุณอาจต้องการอ่านเฉพาะไฟล์เท่านั้น ทั้งนี้ขึ้นอยู่กับการใช้งานแอปพลิเคชันของคุณ นี่คือจุดที่การกรองไฟล์เข้ามามีบทบาท สมมติว่าเราต้องการเลือกไฟล์รูปภาพเท่านั้น เราสามารถใช้ฟังก์ชันตัวกรองไฟล์สำหรับไฟล์รูปภาพได้โดยการตั้งค่าคุณสมบัติ 'ตัวกรอง' ของ OpenFileDialog

ลองดูรหัสต่อไปนี้:

ปุ่มโมฆะส่วนตัว1_คลิก ( ผู้ส่งวัตถุ EventArgs เช่น )
{
โดยใช้ ( OpenFileDialog openFileDialog = OpenFileDialog ใหม่ ( ) )
{
openFileDialog.Filter= 'รูปภาพ|*.jpg,*.jpeg,*.png,*.gif,*.bmp,*.tiff,*.webp,*.heif,*.ico,*.raw' ;
ถ้า ( openFileDialog.ShowDialog ( ) == DialogResult.ตกลง )
{
สตริงที่เลือกไฟล์ = openFileDialog.FileName;
MessageBox.แสดง ( 'ไฟล์ที่เลือก:' + ไฟล์ที่เลือก ) ;
}
}
}


เมื่อเรารันโค้ดแล้วคลิกปุ่ม เราควรจะเห็นประเภทไฟล์ที่เราได้รับอนุญาตให้เลือก ดังตัวอย่างต่อไปนี้:

การแสดงเนื้อหาไฟล์

หากต้องการเพิ่มฟังก์ชันการทำงานให้กับแอปของเรา เราสามารถแสดงเนื้อหาของไฟล์โดยใช้ MessageBox ได้ดังนี้:

ปุ่มโมฆะส่วนตัว1_คลิก ( ผู้ส่งวัตถุ EventArgs เช่น )
{
โดยใช้ ( OpenFileDialog openFileDialog = OpenFileDialog ใหม่ ( ) )
{
openFileDialog.Filter= 'ไฟล์ข้อความ|*.txt' ;
ถ้า ( openFileDialog.ShowDialog ( ) == DialogResult.ตกลง )
{
สตริงที่เลือกไฟล์ = openFileDialog.FileName;
เนื้อหาสตริง = File.ReadAllText ( ไฟล์ที่เลือก ) ;
MessageBox.แสดง ( 'เนื้อหาไฟล์:' + เนื้อหา ) ;
}
}
}


ในกรณีนี้ เรากำลังกรองไฟล์ข้อความเนื่องจากง่ายต่อการอ่าน เมื่อเลือกไฟล์แล้ว เราใช้ File.ReadAllText() และบันทึกเนื้อหาของไฟล์ลงในตัวแปร

จากนั้นเราจะแสดงเนื้อหาไฟล์โดยใช้ MessageBox ดังที่แสดงในฟังก์ชันการทำงานของไฟล์ที่ได้:

การเลือกหลายไฟล์

คุณยังสามารถเปิดใช้งาน OpenFileDialog เพื่ออ่านไฟล์หลายไฟล์โดยใช้คุณสมบัติ 'MultiSelect' สิ่งนี้มีประโยชน์เมื่อคุณต้องการเลือกหลายไฟล์ เช่น การคัดลอก การย้าย ฯลฯ

ฟังก์ชั่นมีดังนี้:

ปุ่มโมฆะส่วนตัว1_คลิก ( ผู้ส่งวัตถุ EventArgs เช่น )
{
โดยใช้ ( OpenFileDialog openFileDialog = OpenFileDialog ใหม่ ( ) )
{
openFileDialog.Filter= 'ไฟล์ข้อความ|*.txt' ;
openFileDialog.Multiselect = จริง ;
ถ้า ( openFileDialog.ShowDialog ( ) == DialogResult.ตกลง )
{
แต่ละ ( เคยเป็น ไฟล์ ใน openFileDialog.FileNames )
{
MessageBox.แสดง ( 'ไฟล์ที่เลือก:' + ไฟล์ ) ;
}
}
}
}


ในตัวอย่างนี้ เราใช้คุณสมบัติ 'MultiSelect' ซึ่งช่วยให้เราสามารถเลือกไฟล์ข้อความหลายไฟล์ได้

จากนั้นเราจะวนซ้ำแต่ละไฟล์ที่เลือกและแสดงเส้นทางของมันในกล่องข้อความ


ได้แล้ว!

บทสรุป

ในบทช่วยสอนที่ยอดเยี่ยมนี้ คุณได้เรียนรู้วิธีสร้างแอปพลิเคชัน GUI พื้นฐานใน C# ที่สามารถอ่านไฟล์และแสดงเนื้อหาโดยใช้ OpenFileDialog คุณยังได้เรียนรู้เกี่ยวกับคุณสมบัติต่างๆ เช่น การกรองไฟล์เฉพาะ การเลือกหลายไฟล์ เป็นต้น