คำถามติดแท็ก winforms

Windows Forms (WinForms) เป็นชื่อที่กำหนดให้กับอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชันกราฟิก (API) ที่รวมอยู่ในส่วนหนึ่งของ Microsoft .NET Framework ซึ่งให้การเข้าถึงองค์ประกอบอินเทอร์เฟซ Microsoft Windows ดั้งเดิมโดยการรวม Windows API ที่ยังหลงเหลืออยู่ในโค้ดที่มีการจัดการ

8
คุณจัดระเบียบโครงการอย่างไร [ปิด]
คุณมีรูปแบบเฉพาะของการจัดระเบียบโครงการหรือไม่? ตัวอย่างเช่นขณะนี้ฉันกำลังสร้างโครงการสำหรับโรงเรียนสองแห่งที่นี่ในโบลิเวียนี่คือวิธีที่ฉันจัดระเบียบ: TutoMentor (Solution) TutoMentor.UI (Winforms project) TutoMentor.Data (Class library project) คุณจัดระเบียบโครงการของคุณอย่างไร คุณมีตัวอย่างของสิ่งที่คุณจัดระเบียบและภาคภูมิใจหรือไม่? คุณสามารถแชร์ภาพหน้าจอของบานหน้าต่างโซลูชันได้หรือไม่ ในส่วน UI ของแอปพลิเคชันของฉันฉันมีปัญหาในการตัดสินใจเลือก schema ที่ดีเพื่อจัดระเบียบแบบฟอร์มต่าง ๆ และที่ที่พวกเขาอยู่ แก้ไข: สิ่งที่เกี่ยวกับการจัดระเบียบแบบฟอร์มต่าง ๆ ในโครงการ. UI ฉันควรจัดกลุ่มฟอร์มที่แตกต่างกันที่ไหน? การทำให้พวกเขาทั้งหมดอยู่ในระดับรากของโครงการเป็นความคิดที่ไม่ดี

10
WPF กับ WinForms - มุมมองของโปรแกรมเมอร์ Delphi หรือไม่?
ฉันได้อ่านหัวข้อหลัก ๆ ใน WPF กับ WinForms แล้วและฉันพบว่าตัวเองติดอยู่ในความสับสนที่คุณสามารถตกหลุมได้เมื่อตัดสินใจระหว่างเทคโนโลยีที่ผ่านการทดลองและจริงมาแล้ว (Winforms) และเป็นตัวตายตัวแทน (WPF) ฉันเป็นโปรแกรมเมอร์ Delphi ที่มีประสบการณ์มาหลายปีจนทำให้ C # โปรแกรมเมอร์ Delphi เพื่อนของฉันออกไปที่นั่นจะเข้าใจว่าฉันตื่นเต้นที่จะรู้ว่า Anders Hejlsberg จากชื่อเสียงของ Delphi คือสถาปนิกด้านหลัง C # ฉันมีความแข็งแกร่งในส่วนประกอบที่กำหนดเองของ VCL ของ Delphi โดยเฉพาะอย่างยิ่งผู้ที่เกี่ยวข้องในการสร้างวิซาร์ดและส่วนประกอบหลายขั้นตอนที่ทำหน้าที่เป็นภาชนะสำหรับส่วนประกอบของเด็ก ด้วยพื้นหลังนั้นฉันหวังว่าพวกคุณที่เปลี่ยนจาก Delphi เป็น C # สามารถช่วยฉันในการตัดสินใจ WinForms vs. WPF สำหรับการเขียนแอปพลิเคชันเริ่มต้นของฉัน หมายเหตุฉันรู้สึกกระวนกระวายใจมากเมื่อการเขียนโค้ดและสิ่งต่าง ๆ เช่นการสนับสนุนการดีบักเกอร์ที่สมบูรณ์แบบอัตโนมัติเต็มรูปแบบและเหมาะสมสามารถสร้างหรือทำลายโปรเจ็กต์สำหรับฉันรวมถึงความสามารถในการค้นหาข้อมูลที่พร้อมใช้งานบนคุณสมบัติ API และการโทร . หัวข้อและความคิดเห็น SO ในช่วงวันที่ต้นปี 2009 …
38 c#  wpf  winforms  delphi  microsoft 

5
ย้ายจาก Winforms ไปยัง WPF [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันเป็นนักพัฒนาWindows Forms ที่มีประสบการณ์มานานแต่ตอนนี้ถึงเวลาย้ายไป WPF แล้วเนื่องจากโครงการ WPF ใหม่กำลังจะมาถึงฉันเร็ว ๆ นี้และฉันมีเวลารอคอยสั้น ๆ เท่านั้นในการเตรียมตัวสำหรับการเรียนรู้ WPF อะไรคือวิธีที่ดีที่สุดสำหรับผู้พัฒนา Winforms ที่มีประสบการณ์? คุณช่วยให้คำแนะนำและคำแนะนำแก่ฉันเพื่อเรียนรู้ WPF ในเวลาอันสั้นได้ไหม! มีตัวอย่างโซลูชัน WPF อย่างง่ายและแบบฝึกหัดสั้น ๆ (วิดีโอ) หรือไม่? ซึ่งหนังสือที่คุณแนะนำ? www.windowsclient.net เป็นจุดเริ่มต้นที่ดีหรือไม่ มีทางเลือกอื่นในเว็บไซต์ Microsoft อย่างเป็นทางการหรือไม่?
26 c#  .net  windows  wpf  winforms 

5
วิธีการจัดโครงสร้างโครงการใน winform อย่างถูกต้อง?
เมื่อไม่นานมานี้ฉันเริ่มสร้างแอปพลิเคชั่น winform และในเวลานั้นมันมีขนาดเล็กและฉันก็ไม่ได้คิดว่าจะจัดโครงสร้างโครงการอย่างไร ตั้งแต่นั้นมาฉันเพิ่มคุณสมบัติเพิ่มเติมตามที่ต้องการและโฟลเดอร์โปรเจ็กต์ก็ใหญ่ขึ้นเรื่อย ๆ และตอนนี้ฉันคิดว่ามันถึงเวลาที่จะจัดโครงสร้างโครงการในบางด้าน แต่ฉันไม่แน่ใจว่าวิธีที่เหมาะสมคืออะไรดังนั้นฉันจึงมีคำถามสองสามข้อ วิธีการปรับโครงสร้างโฟลเดอร์โครงการอย่างเหมาะสม? ในขณะนี้ฉันกำลังนึกถึงบางสิ่งเช่นนี้: สร้างโฟลเดอร์สำหรับแบบฟอร์ม สร้างโฟลเดอร์สำหรับคลาสยูทิลิตี้ สร้างโฟลเดอร์สำหรับคลาสที่มีข้อมูลเท่านั้น หลักการตั้งชื่อคืออะไรเมื่อเพิ่มคลาส? ฉันควรเปลี่ยนชื่อคลาสเพื่อให้สามารถระบุฟังก์ชันการทำงานของพวกเขาได้โดยเพียงแค่ดูที่ชื่อของพวกเขา ยกตัวอย่างเช่นการเปลี่ยนชื่อทุกชั้นเรียนรูปแบบเพื่อให้พวกเขาจบลงด้วยชื่อในแบบฟอร์ม หรือไม่จำเป็นถ้ามีการสร้างโฟลเดอร์พิเศษสำหรับพวกมัน สิ่งที่ต้องทำเพื่อไม่ให้รหัสทั้งหมดสำหรับฟอร์มหลักสิ้นสุดลงใน Form1.cs ปัญหาอีกประการหนึ่งที่ฉันพบคือเมื่อฟอร์มหลักมีขนาดใหญ่ขึ้นตามคุณลักษณะที่ฉันเพิ่มแต่ละไฟล์รหัส (Form1.cs) เริ่มมีขนาดใหญ่มาก ฉันมีตัวอย่างเช่น TabControl และแต่ละแท็บมีพวงของการควบคุมและรหัสทั้งหมดลงเอยใน Form1.cs จะหลีกเลี่ยงสิ่งนี้ได้อย่างไร นอกจากนี้คุณรู้บทความหรือหนังสือที่จัดการกับปัญหาเหล่านี้หรือไม่

3
ฉันควรใช้รายการหรืออาเรย์
ฉันกำลังทำงานบนฟอร์ม windows เพื่อคำนวณ UPC สำหรับหมายเลขรายการ ฉันประสบความสำเร็จในการสร้างหมายเลขที่จะจัดการหมายเลขรายการ / UPC ทีละรายการตอนนี้ฉันต้องการขยายและทำสำหรับหลายรายการหมายเลข / UPCs ฉันเริ่มและลองใช้รายการ แต่ฉันยังคงติดอยู่ ฉันสร้างคลาสผู้ช่วยเหลือ: public class Codes { private string incrementedNumber; private string checkDigit; private string wholeNumber; private string wholeCodeNumber; private string itemNumber; public Codes(string itemNumber, string incrementedNumber, string checkDigit, string wholeNumber, string wholeCodeNumber) { this.incrementedNumber = incrementedNumber; this.checkDigit = …
22 c#  array  winforms  list 

3
การออกแบบที่ดีที่สุดสำหรับรูปแบบ Windows ที่จะแบ่งปันฟังก์ชั่นทั่วไป
ในอดีตที่ผ่านมาฉันเคยใช้การสืบทอดเพื่อให้สามารถขยายแบบฟอร์ม Windows ในแอปพลิเคชันของฉันได้ ถ้าแบบฟอร์มทั้งหมดของฉันมีตัวควบคุมงานศิลปะและฟังก์ชันการทำงานร่วมกันฉันจะสร้างแบบฟอร์มพื้นฐานที่ใช้ตัวควบคุมและฟังก์ชันการทำงานทั่วไปแล้วอนุญาตให้ตัวควบคุมอื่นสืบทอดจากแบบฟอร์มพื้นฐานนั้น อย่างไรก็ตามฉันพบปัญหาเล็กน้อยเกี่ยวกับการออกแบบ การควบคุมสามารถอยู่ในภาชนะหนึ่งครั้งเท่านั้นดังนั้นการควบคุมแบบคงที่ใด ๆ ที่คุณมีจะยุ่งยาก ตัวอย่างเช่นสมมติว่าคุณมีรูปแบบพื้นฐานที่เรียกว่า BaseForm ซึ่งมี TreeView ซึ่งคุณได้รับการป้องกันและคงที่เพื่อให้อินสแตนซ์อื่น ๆ (ที่ได้รับ) ของคลาสนี้ทั้งหมดสามารถแก้ไขและแสดง TreeView เดียวกันได้ สิ่งนี้จะไม่ทำงานสำหรับหลาย ๆ คลาสที่สืบทอดมาจาก BaseForm เนื่องจาก TreeView นั้นสามารถอยู่ในหนึ่งคอนเทนเนอร์ในแต่ละครั้งเท่านั้น มันน่าจะเป็นในรูปแบบสุดท้ายที่เริ่มต้น แม้ว่าทุกอินสแตนซ์สามารถแก้ไขการควบคุมได้ แต่จะแสดงในเวลาเดียวเท่านั้น แน่นอนว่ามีการแก้ไข แต่พวกมันน่าเกลียด (นี่ดูเหมือนจะเป็นการออกแบบที่แย่มากสำหรับฉันทำไมภาชนะบรรจุหลาย ๆ อันไม่สามารถเก็บพอยน์เตอร์ไปยังวัตถุเดียวกันได้อย่างไรก็ตามมันเป็นอย่างนั้น) สถานะระหว่างฟอร์มนั่นคือปุ่มสถานะข้อความป้ายกำกับ ฯลฯ ฉันต้องใช้ตัวแปรโกลบอลสำหรับและรีเซ็ตสถานะบนโหลด สิ่งนี้ไม่ได้รับการสนับสนุนโดยนักออกแบบของ Visual Studio เป็นอย่างดี มีการออกแบบที่ดีกว่า แต่ยังคงไว้ซึ่งการบำรุงรักษาที่ใช้ง่ายหรือไม่? หรือรูปแบบการสืบทอดยังคงเป็นวิธีที่ดีที่สุด? อัปเดต ฉันเปลี่ยนจากการดู MVC เป็น MVP เป็นรูปแบบการสังเกตการณ์เป็นรูปแบบกิจกรรม นี่คือสิ่งที่ฉันกำลังคิดอยู่ในขณะนี้โปรดวิจารณ์: …

2
คุณแยกมุมมองออกจากตรรกะในแอปพลิเคชัน Winform อย่างไร
ฉันรู้ว่ามีรูปแบบเช่น MVC เพื่อแยกมุมมองจากตรรกะ แต่ฉันไม่ทราบว่าเป็นเรื่องธรรมดาเพียงใดในแอปพลิเคชัน Winform สำหรับแอปพลิเคชัน C # Winform ฉันอาจเริ่มต้นด้วยFormและค่อยๆเพิ่มส่วนประกอบ UI ลงไปจากนั้นสำหรับกิจกรรมของส่วนประกอบ ( click, textchanged... ) ฉันเรียกฟังก์ชั่นของฉันหรือเขียนตรรกะของฉันตรงนั้น! ฉันรู้ว่าเป็นนิสัยที่ไม่ดี แต่ฉันไม่ทราบว่าวิธีที่ดีที่สุดในการเริ่มต้นโครงการใน Visual Studio (แม่แบบกรอบงานจุดเริ่มต้น) MVC เป็นทางออกเดียวหรือไม่ ฉันควรทำเพื่อโครงการใด ๆ ! ฉันต้องการรับแนวทางหรือเฟรมเวิร์กขนาดเล็กเพื่อเริ่มต้นใช้งาน
18 c#  mvc  winforms 

3
ฉันจะตั้งค่า MVP สำหรับโซลูชัน Winforms ได้อย่างไร
ฉันเคยใช้ MVP และ MVC ในอดีตและฉันชอบ MVP มากกว่าเพราะมันควบคุมการไหลของการดำเนินการที่ดีขึ้นมากในความคิดของฉัน ฉันได้สร้างโครงสร้างพื้นฐานของฉัน (คลาสที่เก็บข้อมูล / พื้นที่เก็บข้อมูล) และใช้งานได้อย่างไม่มีปัญหาเมื่อทำการเข้ารหัสข้อมูลตัวอย่างอย่างหนักดังนั้นตอนนี้ฉันจึงย้ายไปยัง GUI และเตรียม MVP ของฉัน หมวดก ฉันได้เห็น MVP โดยใช้มุมมองเป็นจุดเริ่มต้นซึ่งอยู่ในวิธีการสร้างมุมมองที่สร้างพรีเซนเตอร์ซึ่งจะสร้างแบบจำลองเชื่อมโยงเหตุการณ์ตามความจำเป็น ฉันยังเห็นผู้นำเสนอเป็นจุดเริ่มต้นที่มุมมองโมเดลและผู้นำเสนอถูกสร้างขึ้นผู้นำเสนอนี้จะได้รับวัตถุมุมมองและแบบจำลองในตัวสร้างเพื่อโยงเหตุการณ์ เช่นเดียวกับใน 2 แต่รูปแบบไม่ผ่านไปยังผู้นำเสนอ แต่โมเดลเป็นคลาสสแตติกที่เรียกเมธอดและส่งคืนการตอบกลับโดยตรง มาตรา B ในแง่ของการรักษามุมมองและรูปแบบในการซิงค์ฉันได้เห็น เมื่อใดก็ตามที่ค่าในมุมมองเปลี่ยนไปเช่นTextChangedเหตุการณ์ใน. Net / C # นี่เป็นการยิงDataChangedEventที่ผ่านเข้าไปในแบบจำลองเพื่อให้ซิงค์อยู่ตลอดเวลา DataChangedEventและที่มีการเปลี่ยนแปลงรูปแบบคือเหตุการณ์พื้นหลังมันฟังแล้วมุมมองที่มีการปรับปรุงทางความคิดเดียวกันของการเพิ่ม เมื่อผู้ใช้ต้องการที่จะกระทำการเปลี่ยนแปลงSaveEventมันก็จะผ่านเข้าไปในแบบจำลองเพื่อทำการบันทึก ในกรณีนี้แบบจำลองเลียนแบบมุมมองข้อมูลและประมวลผลการกระทำ คล้ายกับ # b1 อย่างไรก็ตามมุมมองจะไม่ซิงค์กับโมเดลตลอดเวลา แต่เมื่อผู้ใช้ต้องการที่จะยอมรับการเปลี่ยนแปลงSaveEventถูกไล่ออกและผู้นำเสนอคว้ารายละเอียดล่าสุดและส่งพวกเขาไปยังรูปแบบ ในกรณีนี้โมเดลไม่ทราบเกี่ยวกับข้อมูลมุมมองจนกว่าจะต้องดำเนินการกับมันซึ่งในกรณีนี้โมเดลจะถูกส่งผ่านรายละเอียดที่จำเป็นทั้งหมด หมวด C การแสดงวัตถุธุรกิจในมุมมองเช่นวัตถุ (MyClass) ไม่ใช่ข้อมูลดั้งเดิม (int, double) …

1
ฉันจะใช้รูปแบบ MVC กับแอปพลิเคชัน C # WinForms ได้อย่างไร
ฉันเป็นนักพัฒนา C ++ ที่ใช้รูปแบบ MVC ในการออกแบบ GUI นับตั้งแต่นั้นมา เมื่อเร็ว ๆ นี้ฉันต้องการกลับสู่ C # และฉันตั้งค่าแอปพลิเคชัน Windows Forms แต่ตอนนี้ฉันหลงทางเล็กน้อยเกี่ยวกับวิธีการผลักดันมันไปยังโครงสร้างที่สอดคล้องกับ MVC สิ่งที่ฉันกำลังพยายามทำคือ "ประกาศ" คลาสที่ฉันได้รับสำหรับ WinForms เป็นมุมมองและเพิ่มคลาสสำหรับโมเดลและตัวควบคุมในพื้นหลัง อย่างไรก็ตามฉันไม่แน่ใจว่าจะโต้ตอบกับเหตุการณ์ได้อย่างไรเช่นคลิกปุ่ม โดยปกติฉันจะเปลี่ยนเส้นทางเหตุการณ์เหล่านี้ไปยังตัวควบคุมและดำเนินการกับมุมมองเมื่อฉันทำเสร็จแล้ว สิ่งนี้ทำให้รู้สึกไม่พอใจในกลุ่มดาวนี้ ตัวอย่างเช่นถ้าฉันต้องการใช้ปุ่ม "ออกจาก" ฉันจะต้องเปลี่ยนเส้นทางเหตุการณ์จากมุมมองไปยังตัวควบคุมรวมทั้งใช้วิธีสาธารณะเพิ่มเติมในมุมมองของฉันซึ่งสามารถเรียกได้จากตัวควบคุมในขณะที่ฉัน สามารถเรียก Close () จากมุมมองในตัวอย่างแรกได้ คุณมีคำแนะนำใด ๆ สำหรับฉัน ความเข้าใจของฉันเกี่ยวกับ Windows Forms ใน C # นั้นยังไม่ดีพอที่จะลองใช้งาน MVC หรือไม่? ฉันให้แบบฟอร์มในชั้นเรียนมีบทบาทที่ไม่ถูกต้องหรือไม่? MVC เป็นเพียงสถาปัตยกรรมที่ไม่เหมาะสมสำหรับกรณีการใช้งานนี้หรือไม่?
11 c#  mvc  winforms 

2
เป็นวิธีที่เหมาะสมในการสร้างแอป Winform ด้วย "หน้าจอ" หลายหน้าจอ
วิธีที่เหมาะสมในการสร้างแอป Winform ที่มี 'หน้าจอ' หลายรายการคืออะไร ตัวอย่างเช่นฉันกำลังพยายามเขียนโปรแกรมสำรองข้อมูลขนาดเล็ก (ส่วนใหญ่สำหรับ giggles) และฉันได้ทิ้งการควบคุมและคอนเทนเนอร์ลงในแบบฟอร์ม ฉันใช้พาเนลและกล่องกลุ่มเพื่อแยกหน้าจอที่แตกต่างกันออกไป (เช่น: ฉันใช้แผงควบคุมทั้งหมดสำหรับหน้าต่าง "การตั้งค่า" และอีกพาเนลอื่นเพื่อแสดงการสำรองข้อมูลปัจจุบันทั้งหมดที่ตั้งค่าไว้ ) ไฟล์ form.cs ของฉันใส่เข้าไปในโค้ดจำนวนมากและฉันรู้สึกว่าฉันทำอะไรผิดไป ฉันแทบจะไม่พบสิ่งใดในไฟล์และฉันพร้อมที่จะเริ่มต้นใหม่ โครงการนี้เป็นเพียงสำหรับฉันที่จะขยายความรู้ของฉันของ C # และ. NET ดังนั้นการเริ่มต้นโครงการใหม่จึงไม่ใช่เรื่องใหญ่
11 c#  gui  winforms  gui-design 

4
เหตุใดจึงควรหลีกเลี่ยงการสร้างมรดก
ฉันจำการเรียนรู้ VB4 และการลากปุ่มไปยังแบบฟอร์มดับเบิลคลิกที่ปุ่มนั้นและพิมพ์รหัสลงในตัวจัดการเหตุการณ์ที่ฉันเพิ่งได้รับพรอย่างน่าอัศจรรย์ มาจาก QBASIC ฉันตื่นเต้นกับ "V" ใน "VB" นักออกแบบภาพเป็นสิ่งที่ดีที่สุดตั้งแต่ขนมปังหั่นบาง ๆ แน่นอนว่าคุณสามารถทำทุกอย่างได้โดยทางโปรแกรม แต่ความมหัศจรรย์ของ "V" นั้นน่าดึงดูดมากจนคุณอดไม่ได้ที่จะลาก แต่ปุ่ม เราได้รับการสนับสนุนให้ใช้เส้นทางนั้น แต่ไม่กี่ปีที่ผ่านมาฉันเริ่มเรียนรู้เกี่ยวกับ C # และ. net framework และรู้สึกทึ่งกับทุกสิ่งที่ฉันคิดว่าฉันรู้ว่าเพิ่งออกไปนอกหน้าต่าง มีเวทมนต์มากมายที่เกิดขึ้นใน VB6 ที่เปิดเผยอย่างสมบูรณ์ใน. net: ใช้ตัวสร้างและInitializeComponentsวิธีการเช่น ในภายหลังคุณจะพบอินสแตนซ์ควบคุมทั้งหมดที่คุณลากจากกล่องเครื่องมือกิจกรรมทั้งหมดที่คุณลงทะเบียนและคุณสมบัติที่คุณตั้งไว้ในตัวออกแบบ และก็ไม่เป็นไร ... ฉันเดา มันเป็นเพียงฉันรู้สึกเหมือนฉันไม่ "เป็นเจ้าของ" สิ่งที่เกิดขึ้นรหัสนี้ที่ฉันสามารถแก้ไขได้ผ่านทางนักออกแบบสร้างความรำคาญให้กับฉัน ทุกครั้งที่คุณคัดลอกปุ่มที่ระบุว่า "ตกลง" จากแบบฟอร์มหนึ่งไปยังอีกแบบหนึ่ง (บางครั้งพร้อมกับพี่ชายของ "ยกเลิก") คุณกำลังทำรหัสซ้ำจริง ๆ และนั่นเป็นบาปใช่ไหม แห้งจะไม่ทำซ้ำตัวเองกล่าวว่าสมเด็จพระสันตะปาปา ศาสนาและโรงเรียนที่มีความคิดนอกเหนือจากความเป็นกลางทุกอย่างเราไม่ควรได้รับแบบฟอร์มจากรูปแบบพื้นฐานแทนและมีปุ่ม "ตกลง" (และเพื่อน ๆ ทุกคน) …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.