ดาวน์โหลดโปรแกรม Windows Forms วิธีเพิ่ม การเขียนโปรแกรมใน .NET Framework การทดสอบสำหรับ LoginPresenter

โกลอฟนา / ข้อมูล Corisna

วันนี้ฉันอยากจะบอกคุณถึงวิธีสร้างโปรเจ็กต์ C++ Windows Forms ใน Visual Studio 2013 IDE ทางด้านขวา เริ่มจาก VS 2012 จากรายการโครงการที่สามารถสร้างได้ รายการ Windows Forms Addendum จะถูกลบออก ฉันกำลังพูดถึงสิ่งเหล่านั้นใน C ++ คุณสามารถสร้างโครงการดังกล่าวใน C # โดยเลือกตัวเลือกในการแจกจ่ายโครงการที่กำลังสร้าง อย่างไรก็ตาม ความจริงที่ว่าโครงการดังกล่าวไม่สามารถเลือกจากรายการไม่ได้พูดถึงโครงการที่ไม่สามารถสร้างได้ สำหรับตัวเองฉันต้องการขยายบทความนี้

สิ่งแรกที่คุณต้องทำคือเปิด Visual Studio ทันทีที่เปิดตัว VS จะถูกกดตามลำดับ File\u003e Create\u003e Project

หลังจากนั้นจะขอเลือกประเภทโครงการ เราจำเป็นต้องเลือกส่วนขยาย CLR ของ Visual C++ และเลือกโครงการ Empty CLR

หากโปรเจ็กต์ถูกสร้างขึ้น ในเบราว์เซอร์ โซลูชันจะถูกคลิกด้วยปุ่มเมาส์ขวาสำหรับโปรเจ็กต์ที่สร้างขึ้น ในเมนูบริบทที่ปรากฏขึ้นมาจะถูกเลือกตามลำดับ Add> Create Element และในเมนูที่ปรากฏขึ้นในส่วน UI จะเลือก Windows Forms Form

หากส่งแบบฟอร์ม ไฟล์ MyForm.cpp จะถูกเลือกในโซลูชันเบราว์เซอร์ ตรงหน้าคุณ แท็บใหม่ด้วยรหัสแถวเดียว:

#include "MyForm.h"

สำหรับไฟล์นี้ เราต้องเพิ่มโค้ดถัดไป:

การใช้ระบบเนมสเปซ; ใช้เนมสเปซ System::Windows::Forms; เป็นโมฆะ Main(array ^ args) ( Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); Project1::MyForm form; Application::Run(%form); )

มาฟังจากเจ้าหน้าที่ของโครงการกันครับ pіdrozdil .ที่เลือก ระบบแยกตัวสร้างและในแถว ระบบย่อย จากเมนู เลือก Windows (/SUBSYSTEM:WINDOWS) แล้วคลิก เริ่ม

โดยไม่ต้องลดอำนาจของโครงการ ไปที่ส่วนย่อยของ Dodatkovo และในแถว จุดเริ่มต้นเขียน หลักและหลังจากนั้นเราก็กดปุ่ม ตกลง.
โครงการใดจะแล้วเสร็จ หากต้องการแก้ไขรูปลักษณ์ปัจจุบันของแบบฟอร์ม ให้ไปที่แท็บ MyForm.h [ตัวสร้าง] โดยคลิกที่ไฟล์ MyForm.h ในเบราว์เซอร์โซลูชัน

ขอให้เป็นวันที่ดี!
Model-View-Presenter - นำเสนอเทมเพลตการออกแบบที่กำหนดเอง จากการมองแวบแรก ทุกอย่างดูเรียบง่าย: є model (รุ่น) ชอบที่จะแก้แค้นตรรกะทางธุรกิจทั้งหมดบนหน้าจอ ดู / ส่ง (ดู) ซึ่งคุณรู้วิธีแสดงข้อมูลอื่น ๆ เหล่านั้น ตัวแทน (ผู้นำเสนอ) ซึ่งเป็นผู้โชคดี - ตอบสนองต่อส่วนย่อยของคอริสตูวาชาในมุมมอง การเปลี่ยนโมเดล และนาฟปากิ
การพับจะเริ่มขึ้นหากจำนวนของแบบฟอร์มในโครงการมีมากขึ้นสำหรับหนึ่ง
บทความดูที่:
- ทฤษฎีทรอชี
- ปัญหาการเผาไหม้การใช้งาน MVP (โซเครมามุมมองแบบพาสซีฟ) ภายใต้ Windows Forms;
- คุณสมบัติของการดำเนินการเปลี่ยนระหว่างแบบฟอร์มและการถ่ายโอนพารามิเตอร์, หน้าต่างโมดอล;
- การเชื่อมโยงคอนเทนเนอร์ IoC กับ Dependency Injection - เทมเพลต DI (และ Constructor Injection เอง)
- คุณสมบัติเฉพาะของการทดสอบโปรแกรม MVP (สำหรับการทดสอบ NUnit และ NSubstitute)
- ทุกอย่างควรนำไปใช้กับตัวอย่างของโปรเจ็กต์ขนาดเล็กและมีแรงจูงใจ แต่เพื่อให้ถูกต้อง
บทความติดอยู่:
- อะแดปเตอร์เทมเพลต Zastosuvannya (อะแดปเตอร์);
- การใช้งานเทมเพลต Application Controller อย่างง่าย
บทความนี้สำหรับใคร?
อันดับหลักสำหรับผู้ค้าปลีก-pochatkivtsiv บน Windows Forms เช่น chuli แต่พวกเขาไม่ได้ลอง หรือพวกเขาลองแล้ว แต่ก็ไม่ได้ลอง ต้องการร้องเพลงdeyakіyi zastosovnіสำหรับ WPF และนำทางสำหรับการพัฒนาเว็บ

คำชี้แจงปัญหา

คิดงานง่าย ๆ - ใช้ 3 หน้าจอ:
1) หน้าจอการอนุญาต;
2) หัวหน้าจอ;
3) หน้าจอ modal เพื่อเปลี่ยนชื่อของ koristuvach
มีความผิดในการเยี่ยมชม schos บน kshtalt tsyogo:

ทฤษฎีทรอชี

MVP เช่นเดียวกับพ่อทูนหัว MVC (Model-View-Controller) ของการประดิษฐ์เพื่อความชัดเจน การแบ่งตรรกะทางธุรกิจเป็นวิธีการแสดงภาพ

บนอินเทอร์เน็ต คุณสามารถดูการใช้งาน MVP ที่ไม่มีตัวตนได้ ตามวิธีการส่งข้อมูลเพื่อส่งข้อมูลสามารถแบ่งออกได้เป็น 3 ประเภท คือ
- มุมมองแบบพาสซีฟ: มุมมองเพื่อขจัดตรรกะขั้นต่ำในการแสดงข้อมูลดั้งเดิม (แถว, ตัวเลข) ผู้นำเสนอจะดูแลการตัดสินใจ
- รูปแบบการนำเสนอ: มุมมองสามารถส่งข้อมูลได้ไม่เพียงเท่านั้น แต่ยังรวมถึงวัตถุทางธุรกิจด้วย
- Supervising Controller: View รู้เกี่ยวกับการมีอยู่ของโมเดลและดึงข้อมูลจากมัน

มาดูการปรับเปลี่ยนมุมมองแบบพาสซีฟกัน มาอธิบายภาพวาดหลักกัน:
- อินเทอร์เฟซข้อมูล (IView) ซึ่งเป็นข้อตกลงที่ดีที่สุดสำหรับการแสดงข้อมูล
- ลักษณะที่ปรากฏ - การใช้งานเฉพาะของ IView ราวกับว่าสามารถแสดงตัวเองในอินเทอร์เฟซเฉพาะ (ทั้ง Windows Forms, WPF หรือเปิดคอนโซล) และไม่รู้อะไรเกี่ยวกับผู้ที่ใช้งาน มีรูปแบบที่แตกต่างกัน
- รุ่น - ให้ตรรกะทางธุรกิจกับตรรกะทางธุรกิจ (ใช้: เข้าถึงฐานข้อมูล ที่เก็บ บริการ) มันอาจจะถูกนำเสนอในคลาสอื่นหรืออีกครั้ง อินเทอร์เฟซและการใช้งาน
- ตัวแทนในการส่งข้อความไปยังการส่งผ่านอินเทอร์เฟซ (IView) ซึ่งต้องการให้เขาสมัครสมาชิกการส่งของคุณ zdiisnyuєการตรวจสอบอย่างง่าย (การตรวจสอบ) ของการป้อนข้อมูล; เพื่อแก้แค้นโมเดลหรืออินเทอร์เฟซ ถ่ายโอนข้อมูลจาก View และขออัปเดต

การดำเนินการตามปกติของตัวแทน

Presenter คลาสสาธารณะ (ส่วนตัวอ่านอย่างเดียว IView _view; IService ส่วนตัวแบบอ่านอย่างเดียว _service; ผู้นำเสนอสาธารณะ (มุมมอง IView, บริการ IService) ( _view = มุมมอง; _service = บริการ; _view.UserIdChanged += () => UpdateUserInfo(); ) โมฆะส่วนตัว) ( ผู้ใช้ var = _service.GetUser(_view.UserId); _view.Username = user.Username; _view.Age = user.Age; ) )


ข้อดีอะไรที่ทำให้เรามีการเชื่อมต่อคลาสน้อยที่สุด (อินเทอร์เฟซต่าง ๆ ย่อย)
1. ให้คุณเปลี่ยนตรรกะของส่วนประกอบใดๆ ได้อย่างอิสระโดยไม่ต้องตัดสินใจ
2. โอกาสที่ดีสำหรับการทดสอบหน่วย TDD shanuvalniks สามารถจับมือได้
มาทำกัน!

จะจัดระเบียบโครงการได้อย่างไร?

ให้คิดว่าการแก้ปัญหาเกิดขึ้นจาก 4 โครงการ:
- DomainModel - บริการแก้แค้นและที่เก็บทั้งหมดในคำ - รุ่น;
- การนำเสนอ - เพื่อล้างแค้นตรรกะของรายงานเพื่อให้อยู่ในสายตาของการแสดงภาพ tobto ตัวแทนทั้งหมด อินเทอร์เฟซ ลักษณะที่ปรากฏ และคลาสพื้นฐานอื่น ๆ
- UI - ภาคผนวกของ Windows Forms, รูปแบบเพิ่มเติม (การใช้งานอินเทอร์เฟซ ลักษณะที่ปรากฏ) และตรรกะการเปิดตัว;
- การทดสอบ - การทดสอบหน่วย

จะเขียนอะไรใน Main()?

การใช้งานมาตรฐานของการรันโปรแกรม Windows Forms มีลักษณะดังนี้:

โมฆะคงที่ส่วนตัว Main() ( Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run (ใหม่ MainForm());
Ale mi ทำมันเพื่อให้ตัวแทนเครูบการปรากฏตัวที่เขาต้องการเพื่อให้รหัสมีลักษณะดังนี้:

โมฆะคงที่ส่วนตัว Main() ( Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); var presenter = new LoginPresenter(new LoginForm(), new LoginService()); // Dependency Injection presenter.Run(); )
มาลองใช้หน้าจอแรกกัน:

อินเทอร์เฟซพื้นฐาน

// วิธีการทั่วโลกของอินเทอร์เฟซสาธารณะทั้งหมดที่ปรากฏ IView ( void Show(); void Close(); ) // สัญญาซึ่งตัวแทนจะโต้ตอบกับรูปแบบอินเทอร์เฟซสาธารณะ ILoginView: IView ( สตริง ชื่อผู้ใช้ ( รับ; ) สตริง รหัสผ่าน ( รับ; ); ) เหตุการณ์ การดำเนินการ เข้าสู่ระบบ; // pod_ya "koristuvach พยายามเข้าสู่ระบบ" เป็นโมฆะ ShowError (ข้อความแสดงข้อผิดพลาดของสตริง); ) อินเทอร์เฟซสาธารณะ IPresenter ( void Run(); ) // บริการอนุญาตที่โง่ ส่วนต่อประสานสาธารณะ - การอนุญาตที่สำเร็จ มิฉะนั้น จะเป็นเท็จ )


ส่วย

คลาสสาธารณะ LoginPresenter: IPresenter ( ส่วนตัวอ่านอย่างเดียว ILoginView _view; ส่วนตัวอ่านอย่างเดียว ILoginService _service; สาธารณะ LoginPresenter (มุมมอง ILoginView, บริการ ILoginService) ( _view = ดู; _service = บริการ; _view.Login += () ดู .รหัสผ่าน); ) โมฆะสาธารณะ () ( _view.Show(); ) โมฆะส่วนตัวเข้าสู่ระบบ(ชื่อผู้ใช้สตริง, รหัสผ่านสตริง) (ถ้า (ชื่อผู้ใช้ == null) โยนค่า null ใหม่) โยนใหม่ ArgumentNullException("รหัสผ่าน"); ผู้ใช้ var = ผู้ใช้ใหม่ (ชื่อ = ชื่อผู้ใช้ รหัสผ่าน = รหัสผ่าน); if (!_service.Login(user)) else ( // อนุญาตสำเร็จ, เปิดหน้าจอหลัก (?) ) ) )


สร้างแบบฟอร์มและนำไปใช้ในอินเทอร์เฟซ ILoginView ไม่ว่าคุณจะเขียนการใช้งาน ILoginService อย่างไร ต่อไปนี้เป็นคุณลักษณะน้อยกว่าหนึ่งรายการ:

LoginForm คลาสบางส่วนสาธารณะ: Form, ILoginView ( // ... public new void Show() ( Application.Run(this); ) )
นี่คือคาถาที่อนุญาตให้ส่วนเสริมของเราเริ่มต้น แสดงแบบฟอร์ม และหลังจากปิดแบบฟอร์ม ให้กรอกโปรแกรมให้สมบูรณ์ มาหมุนกันจนกว่าจะถึงเวลานั้น

จะมีการทดลองหรือไม่?

ตั้งแต่วินาทีที่ตัวแทน (LoginPresenter) ถูกเขียนขึ้น ก็สามารถทำการทดสอบหน่วยโยคะได้ทันที โดยไม่ต้องใช้แบบฟอร์มใดๆ หรือบริการใดๆ
สำหรับการเขียนการทดสอบ ฉันเป็นผู้สนับสนุนไลบรารี NUnit และ NSubstitute (ไลบรารีสำหรับสร้างคลาส stub ที่อยู่เบื้องหลังอินเทอร์เฟซ จำลอง)

การทดสอบสำหรับ LoginPresenter

คลาสสาธารณะ LoginPresenterTests ( ILoginView ส่วนตัว _view; การตั้งค่าโมฆะสาธารณะ () ( _view = Substitute.For (); // stub สำหรับ view var service = Substitute.For (); // stub สำหรับบริการ service.Login(Arg.Any ()) // ไม่เข้าสู่ระบบอีกต่อไป admin/password .Returns(info => info.Arg ().Name == "admin" && info.Arg ().รหัสผ่าน == "รหัสผ่าน"); var presenter = ใหม่ LoginPresenter(_view, บริการ); ผู้นำเสนอ Run(); ) โมฆะสาธารณะ InvalidUser() ( _view.Username.Returns("Vladimir"); _view.Password.Returns("VladimirPass"); _view.Login += Raise.Event (); _view.Received().ShowError(Arg.Any .) ได้ ()); // เมธอดนี้มีหน้าที่เรียกข้อความของการให้อภัย ) public void ValidUser() ( _view.Username.Returns("admin"); _view.Password.Returns("password"); _view.Login += Raise.Event (); _view.DidNotReceive().ShowError(Arg.Any .) _view.DidNotReceive().แสดงข้อผิดพลาด(Arg.Any) ()); // และใน vipadka ของฉันทุกอย่างก็โอเค))


การทดสอบ dosit bad ตราบใดที่ตัวโปรแกรมเอง เอลดังนั้น chi іnaksheก็ผ่านไปได้สำเร็จ

ใครและจะเปิดหน้าจออื่นด้วยพารามิเตอร์ได้อย่างไร?

อย่างที่คุณจำได้ ฉันไม่ได้เขียนรหัสที่ถูกต้องสำหรับการอนุญาตที่สำเร็จ ฉันจะเปิดหน้าจออื่นได้อย่างไร ประการแรกมันตกอยู่ที่ความคิด:

// LoginPresenter: ล็อกอินสำเร็จ var mainPresenter = New MainPresenter(new MainForm()); mainPresenter.Run(ผู้ใช้);
Alemy ตระหนักว่าตัวแทนไม่รู้อะไรเลยเกี่ยวกับการสำแดงไครเมียของอินเทอร์เฟซของพวกเขา งานคืออะไร?
รูปแบบ Application Controller ได้รับการช่วยเหลือ (การใช้งานจะง่ายขึ้น) โดยตรงกลางจะมีคอนเทนเนอร์ IoC ซึ่งคุณรู้วิธีนำวัตถุของการใช้งานไปใช้หลังอินเทอร์เฟซ
Controller จะถูกส่งต่อไปยังตัวแทนสกินโดยพารามิเตอร์ Constructor (DI ใหม่) และใช้วิธีต่อไปนี้โดยประมาณ:

อินเทอร์เฟซสาธารณะ IApplicationController ( IApplicationController RegisterView () โดยที่ TImplementation: class, TView โดยที่ TView: IView; IapplicationController RegisterService () ของ TImplementation: คลาส TService; โมฆะ Run () โดยที่ TPresenter: class, IPresenter; )
หลังจากปรับโครงสร้างใหม่เล็กน้อย การเปิดตัวโปรแกรมจะมีลักษณะดังนี้:

โมฆะคงที่ส่วนตัว Main() ( Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); // ทางเลือกทั้งหมดได้รับการลงทะเบียนในที่เดียว: var controller = new ApplicationController(new LightInjectAdapder()) .RegisterView ().ลงทะเบียนบริการ ().RegisterView (); controller.Run (); }
คำสองสามคำเกี่ยวกับ ApplicationController(new LightInjectAdapder()) ใหม่ เช่นเดียวกับคอนเทนเนอร์ IoC ฉันแฮ็คไลบรารี LightInject แต่ไม่ใช่โดยตรง แต่ผ่านอะแดปเตอร์ (รูปแบบอะแดปเตอร์) ดังนั้นหากคุณต้องการเปลี่ยนคอนเทนเนอร์เป็นอันอื่น ฉันสามารถเขียนอะแดปเตอร์อื่นและไม่เปลี่ยนตรรกะของ ตัวควบคุม วิธีการทั้งหมดที่ได้รับชัยชนะนั้นอยู่ในไลบรารี IoC ส่วนใหญ่ ถูกพับและไม่มีความผิด
มีการใช้งานอินเทอร์เฟซ IPresenter เพิ่มเติม ซึ่งมีโอกาสน้อยที่วิธี Run จะยอมรับพารามิเตอร์ เราจะค่อยๆ ลดมุมมองของแบบใหม่ เหมือนกับหน้าจอแรก
ตอนนี้เราเปิดหน้าจออื่นโดยปราศจากความภาคภูมิใจโดยผ่าน koristuvach ที่ได้รับอนุญาตที่นั่น:

Controller.Run (ผู้ใช้); ดู. ปิด ();

คุณไม่สามารถใช้และปิดแบบฟอร์มได้

หนึ่งในหินใต้น้ำในแถว View.Close() หลังจากที่แบบฟอร์มแรกถูกปิดและในขณะเดียวกันก็มีการเพิ่มจากมัน ทางด้านขวา Application.Run(Form) เรียกใช้ลูปการปลุกของ Windows มาตรฐานและดูที่แบบฟอร์มที่ส่งผ่านเป็นรูปแบบหลักของโปรแกรม เนื่องจากโปรแกรมหยุดการทำงาน ExitThread บน Form.Closed sub ซึ่งเรียกโปรแกรมให้ปิดหลังจากปิดแบบฟอร์ม
มีหลายวิธีในการแก้ไขปัญหานี้ หนึ่งในนั้นคือเปลี่ยนวิธีการ: Application.Run (ApplicationContext) จากนั้นแทนที่พลังของ ApplicationContext.MainForm การถ่ายโอนไปยังบริบทของแบบฟอร์มถูกนำมาใช้เพื่อความช่วยเหลือของตัวควบคุมโปรแกรม ซึ่งวัตถุ ApplicationContext (อินสแตนซ์) ได้รับการลงทะเบียนแล้วจึงส่งไปยังตัวสร้างแบบฟอร์ม (ฉันเริ่ม DI) เมื่อเริ่มต้นตัวแทน วิธีการแสดงสองหน้าจอแรกตอนนี้มีลักษณะดังนี้:

// LoginForm โมฆะใหม่สาธารณะ Show() ( _context.MainForm = this; Application.Run(_context); ) // MainForm public new void Show() ( _context.MainForm = this; base.Show(); )

หน้าต่างโมดอล

การใช้หน้าต่างโมดอลไม่ได้หมายถึงปัญหา ที่ปุ่ม "เปลี่ยนชื่อ" Controller.Run ถูกทำเครื่องหมาย (ผู้ใช้). วิธีเดียวในการแสดงแบบฟอร์มในที่อื่นไม่ใช่พาดหัว แบบฟอร์มนั้นไม่จำเป็นสำหรับการแสดง ApplicationContext:

โมฆะใหม่สาธารณะ Show() ( ShowDialog(); )
เท่าที่จำเป็นในการจดจำความแตกต่าง วิธีการก็ไม่จำเป็นต้องเปลี่ยน เนื่องจากคลาส Form มีการใช้งานอยู่แล้ว

พวกเขาทำพลาด ... ตอนนี้ CE vikoristati เป็นอย่างไร?

ตอนนี้ หากเฟรมพร้อม การเพิ่มรูปแบบใหม่จะนำไปสู่ทางลัดดังกล่าว:
  1. เราเขียนส่วนต่อประสานของ Appearance ซึ่งเป็นส่วนต่อประสานของ Model (ตามต้องการ)
  2. ตัวแทนสามารถทำได้โดย prima facie virishivshi เพื่อที่เราจะได้ถ่ายโอนข้อมูลนี้เป็นแบบจำลองใหม่
  3. [ไม่บังคับ] เราเขียนบททดสอบสำหรับตัวแทน เราจะเปลี่ยนใจ ทุกอย่างเรียบร้อยดี
  4. [ไม่บังคับ] โมเดลที่ใช้งานได้และทดสอบ
  5. เราให้แบบฟอร์มและใช้อินเทอร์เฟซของลักษณะที่ปรากฏ
การเปลี่ยนคอนเทนเนอร์ IoC เป็นคนที่คุณรักเป็นวิธีการใช้งานอินเทอร์เฟซ IContainer อย่างง่ายกับคลาสอะแด็ปเตอร์

คุณสามารถเลือกโครงการสาธิตจาก

  1. https://metanit.com/sharp/windowsforms/1.1.php

    บทนำสู่ Windows Forms

    สำหรับการสร้างส่วนต่อประสานกราฟิกสำหรับความช่วยเหลือของแพลตฟอร์ม .NET เทคโนโลยีต่างๆ- Window Forms, WPF, โปรแกรม Windows Store (สำหรับ Windows 8/8.1/10) อย่างไรก็ตาม แพลตฟอร์มเอกสารที่ง่ายและสะดวกที่สุดคือ Window Forms หรือ Forms ความช่วยเหลือของเดนมาร์กเป็นข้อมูลเมตาของการทำความเข้าใจหลักการของการสร้างส่วนต่อประสานกราฟิกสำหรับเทคโนโลยี WinForms เพิ่มเติมและการทำงานขององค์ประกอบหลักของการจัดการ

    สร้างโดยซอฟต์แวร์กราฟิก
    ในการสร้างโครงการกราฟิก เราจำเป็นต้องมีสภาพแวดล้อมการพัฒนา Visual Studio เนื่องจากเวอร์ชันของ Visual Studio 2013 เป็นเวอร์ชันที่ขยายมากที่สุด เราจะทวีตเพื่อขอความช่วยเหลือ รุ่นฟรีให้สื่อ Visual Studio Community 2013สามารถหา Yaku ได้ที่ด้านข้าง https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx

    หลังจากติดตั้งมิดเดิลแวร์และส่วนประกอบทั้งหมดแล้ว ให้เปิด Visual Studio และสร้างโปรเจ็กต์โปรแกรมกราฟิก ซึ่งในเมนู ให้เลือกรายการไฟล์ (ไฟล์) และในเมนูย่อย ให้เลือกใหม่ -> โครงการ (สร้าง -> โครงการ) สิ่งสุดท้ายที่เราเห็นต่อหน้าเราคือหน้าต่างโต้ตอบของการสร้างโครงการใหม่:

    คอลัมน์ด้านซ้ายเลือก Windows Desktop และส่วนกลางของประเภทโปรเจ็กต์ตรงกลางจะเลือกประเภท แอปพลิเคชันแบบฟอร์ม Windowsและสำหรับผู้หญิงฉันเหมือนอยู่ในทุ่งด้านล่าง ตัวอย่างเช่น เราเรียกโยคะ สวัสดีแอพ. สิ่งต่อไปกดตกลง

    หลังจากที่ Visual Studio เปิดโปรเจ็กต์จากไฟล์ที่สร้างขึ้นหลังการล็อก:

    ขอบเขตส่วนใหญ่ของ Visual Studio ถูกครอบครองโดยนักออกแบบกราฟิก ซึ่งสามารถกำหนดรูปแบบโปรแกรมในอนาคตได้ ขณะนี้ว่างเปล่าและไม่มีอะไรมากไปกว่าส่วนหัวของ Form1 ทางด้านขวา คุณจะพบไฟล์โซลูชัน/โครงการ - Solution Explorer คุณจะพบไฟล์ทั้งหมดที่เกี่ยวข้องกับภาคผนวกของเรา รวมถึงไฟล์ในแบบฟอร์ม แบบฟอร์ม1.cs.

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

    ตอนนี้เรารู้ถึงพลังของรูปแบบ Text และเปลี่ยนความหมายของมันเป็นจามรี:

    ด้วยวิธีนี้ เราเปลี่ยนชื่อของแบบฟอร์ม ตอนนี้สามารถโอนย้ายไปยังฟิลด์ได้เป็นองค์ประกอบหลัก ตัวอย่างเช่น ปุ่ม ซึ่งเราทราบในส่วนด้านซ้ายของ Visual Studio แท็บกล่องเครื่องมือ (กล่องเครื่องมือ) คลิกที่แท็บนี้แล้วเราจะเห็นแผงที่มีองค์ประกอบ เราสามารถโอนดาวไปยังแบบฟอร์มสำหรับองค์ประกอบอื่น ๆ ได้:

    เรารู้องค์ประกอบตรงกลางของปุ่ม i เมื่อโหลด їїใน kazіvnik ของเมาส์ เราโอนไปยังแบบฟอร์ม:

    Tse เป็นส่วนที่มองเห็นได้ ทีนี้มาดูการเขียนโปรแกรมกัน ให้ฉันเพิ่มรหัสที่ง่ายที่สุดของ C # ของฉันซึ่งเป็นปุ่มเปิดใช้งานและกดปุ่ม สำหรับใครก็ตามที่ฉันมีความผิดให้ไปที่ไฟล์รหัสซึ่งเป็นการเชื่อมต่อจากแบบฟอร์มนี้ เนื่องจากเราไม่มีไฟล์โค้ดให้ดู เราจึงสามารถคลิกบนแบบฟอร์มโดยใช้ปุ่มเมาส์ขวาและในเมนูดูโค้ด (ดูไฟล์โค้ด):

    อย่างไรก็ตาม เราจะเร่งความเร็วในวิธีที่ต่างออกไป เพื่อไม่ให้เขียนโค้ดมากเกินไป เลื่อนตัวชี้เมาส์ไปที่ปุ่มและคลิกที่การคลิกด้านล่าง เราใช้ไฟล์โค้ดโดยอัตโนมัติ แบบฟอร์ม1.csซึ่งมีลักษณะดังนี้:

    การใช้ระบบ

    ใช้ System.ComponentModel;
    ใช้ System.Data;
    ระบบผู้ชนะ. การวาดภาพ;
    ใช้ System.Linq;
    ใช้ System.Text;

    ใช้ System.Windows.Forms;

    เนมสเปซ HelloApp
    {

    {
    แบบฟอร์มสาธารณะ1()
    {
    InitializeComponent();
    }


    {

    }
    }
    }
    Dodamo แสดงการแจ้งเตือนหลังจากกดปุ่ม โดยเปลี่ยนรหัสด้วยวิธีต่อไปนี้:

    การใช้ระบบ
    ผู้ชนะ System.Collections.Generic;
    ใช้ System.ComponentModel;
    ใช้ System.Data;
    ระบบผู้ชนะ. การวาดภาพ;
    ใช้ System.Linq;
    ใช้ System.Text;
    ผู้ชนะ System.Threading.Tasks;
    ใช้ System.Windows.Forms;

    เนมสเปซ HelloApp
    {
    ชั้นเรียนบางส่วนสาธารณะ Form1: Form
    {
    แบบฟอร์มสาธารณะ1()
    {
    InitializeComponent();
    }

    โมฆะส่วนตัว button1_Click (ผู้ส่งอ็อบเจ็กต์ EventArgs e)
    {
    MessageBox.Show("สวัสดี");
    }
    }
    }
    เปิดตัวโปรแกรม
    ในการรันโปรแกรมในโหมดบูต ให้กดแป้น F5 หรือลูกศรสีเขียวบนแผง Visual Studio ครั้งต่อไปที่แบบฟอร์มของเราเริ่มต้นด้วยปุ่มเอง และหากเรากดปุ่มบนแบบฟอร์ม จะแสดงข้อความเตือนเกี่ยวกับการสูบไอ

    หลังจากเปิดตัวโปรแกรม สตูดิโอจะรวบรวมโยคะจากไฟล์จากนามสกุล exe รู้ ไฟล์ดานีคุณสามารถไปที่โฟลเดอร์โปรเจ็กต์และย้ายไปยังไดเร็กทอรี bin/Debug หรือ bin/Release

    เมื่อพิจารณาสั้น ๆ เกี่ยวกับการสร้างส่วนเสริมกราฟิกสำหรับโครงการ เราสามารถไปยังภาพรวมขององค์ประกอบหลักและแน่นอนแบบฟอร์ม

  2. https://metanit.com/sharp/windowsforms/2.1.php

    หุ่นยนต์ที่มีรูปแบบ
    พื้นฐานของแบบฟอร์ม

    Zovnіshnіy vglyad โปรแกรมเรามากเกินไปผ่านแบบฟอร์ม แบบฟอร์มเป็นส่วนสำคัญของชีวิต กลิ่นเหม็นวางบนภาชนะสำหรับองค์ประกอบต่าง ๆ ของ keruvannya และกลไกของการแบ่งย่อยช่วยให้องค์ประกอบของแบบฟอร์มแนะนำ coristuvacha และในลักษณะดังกล่าวมีปฏิสัมพันธ์กับ coristuvacha

    เมื่อเปิดโครงการใน Visual Studio บรรณาธิการกราฟิกเราสามารถใช้ส่วนที่มองเห็นได้ของแบบฟอร์ม - ส่วนนั้น ตามที่เราทำได้หลังจากเปิดตัวโปรแกรมและตำแหน่งที่องค์ประกอบถูกถ่ายโอนจากแผงควบคุม แต่แท้จริงแล้ว รูปแบบนั้นต้องอาศัยความยาก ซึ่งประกอบด้วยวิธีการ อำนาจ และสิ่งอื่น ๆ มาดูรูปแบบพลังหลักกัน

    หากเรารันโปรแกรม แบบฟอร์มว่างจะปรากฏขึ้น ประท้วงโครงการง่ายๆ ดังกล่าวจากแบบฟอร์มเปล่าที่มีส่วนประกอบไม่กี่อย่าง:

    โดยไม่คำนึงถึงว่า Bachimo ของฉันมีเพียงรูปแบบ แต่เป็นจุดเริ่มต้นสำหรับการเข้าสู่โปรแกรมกราฟิกของคลาส Program การจัดไฟล์ Program.cs:

    การใช้ระบบ
    ผู้ชนะ System.Collections.Generic;
    ใช้ System.Linq;
    ผู้ชนะ System.Threading.Tasks;
    ใช้ System.Windows.Forms;

    เนมสเปซ HelloApp
    {
    โปรแกรมคลาสคงที่
    {
    โมฆะคงที่ Main()
    {
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(เท็จ);
    Application.Run (Form1 ใหม่ ());
    }
    }
    }
    โปรแกรมจะเริ่มคลาสนี้ก่อน จากนั้นเราจะใช้ Application.Run(new Form1()) เพื่อเรียกใช้แบบฟอร์ม Form1 เพื่อขอความช่วยเหลือ หากเราต้องการเปลี่ยนฟอร์มเริ่มต้นเป็นส่วนเสริมของคลาสอื่น เราต้องเปลี่ยน Form1 เป็นคลาสอื่นของฟอร์ม

    แบบฟอร์มนั้นพับได้หลัง zm_st วอนแบ่งออกเป็นส่วนประกอบต่ำ ดังนั้นโครงสร้างของโครงการจึงมีไฟล์ แบบฟอร์ม1.Designer.csซึ่งมีลักษณะดังนี้:

    เนมสเปซ HelloApp
    {
    คลาสบางส่วน Form1
    {
    ///


    /// ตัวแปรตัวออกแบบที่จำเป็น
    ///

    ///


    /// ล้างทรัพยากรที่ใช้
    ///

    /// จริงหากทรัพยากรที่มีการจัดการควรถูกกำจัด มิฉะนั้นเป็นเท็จ

    {

    {
    ส่วนประกอบ.dispose();
    }
    ฐานทิ้ง (ทิ้ง);
    }

    #region Windows Form Designer สร้างรหัส

    ///


    /// วิธีที่จำเป็นสำหรับการสนับสนุนตัวออกแบบ - ห้ามแก้ไข
    /// เนื้อหาของเมธอดนี้ด้วยตัวแก้ไขโค้ด
    ///


    {
    this.SuspendLayout();
    // แบบฟอร์ม1



    this.Name = "Form1";
    this.Text = "สวัสดีชาวโลก!";
    this.ResumeLayout(เท็จ);

    }
    }
    ที่นี่ฟอร์มคลาส Form1 ถูกทำให้หูหนวกเนื่องจากสามารถมีได้สองวิธี: Dispose () ซึ่งใช้บทบาทของ destructor ของวัตถุและ InitializeComponent () ซึ่งตั้งค่าเริ่มต้นของพลังของฟอร์ม

    เมื่อเพิ่มองค์ประกอบ เช่น ปุ่ม คำอธิบายจะถูกเพิ่มลงในไฟล์ด้วย

    แต่ในทางปฏิบัติเราไม่ค่อย z_shtovhuvatimemosya กับคลาสนี้เพราะกลิ่นเหม็นvikonuєในฟังก์ชั่นการออกแบบหลัก - การติดตั้งหน่วยงานของวัตถุการติดตั้งการเปลี่ยนแปลง

    ไฟล์อื่น - แบบฟอร์ม1.resx- แบบฟอร์มบันทึกทรัพยากร ตามกฎแล้วทรัพยากรจะได้รับชัยชนะสำหรับการสร้างรูปแบบคฤหาสน์เดี่ยวในเวลาเดียวกันสำหรับพืชผลสมัยใหม่จำนวนหนึ่ง

    І ไฟล์สำคัญ - แบบฟอร์ม1.csซึ่งเรียกง่ายๆ ว่า Form1 ในโครงสร้างของโครงการ เพื่อแทนที่โค้ดหรือตรรกะของโปรแกรมของแบบฟอร์ม:

    การใช้ระบบ
    ผู้ชนะ System.Collections.Generic;
    ใช้ System.ComponentModel;
    ใช้ System.Data;
    ระบบผู้ชนะ. การวาดภาพ;
    ใช้ System.Linq;
    ใช้ System.Text;
    ผู้ชนะ System.Threading.Tasks;
    ใช้ System.Windows.Forms;

    เนมสเปซ HelloApp
    {
    ชั้นเรียนบางส่วนสาธารณะ Form1: Form
    {
    แบบฟอร์มสาธารณะ1()
    {
    InitializeComponent();
    }
    }
    }
    สำหรับคำอธิบายภาพที่นี่มีเพียงตัวสร้างแบบฟอร์มซึ่งเรียกง่ายๆว่า InitializeComponent () มีไฟล์ตัวออกแบบ แบบฟอร์ม1.Designer.cs. เช่นเดียวกับไฟล์ mi และ pracyuvatimemo อื่น ๆ

  3. https://metanit.com/sharp/windowsforms/2.2.php

    การครอบงำหลักของรูปแบบ

    สำหรับความช่วยเหลือของหน้าต่างพิเศษ คุณสมบัติ (พลังงาน) Visual Studio ที่ถนัดขวาช่วยให้เรามีอินเทอร์เฟซที่สะดวกสำหรับการจัดการพลังขององค์ประกอบ:

    ความยิ่งใหญ่ของพลังเหล่านี้ถูกเทลงในรูปแบบการมองเห็น ไปตามหน่วยงานหลักกันเถอะ:

    • ชื่อ: ตั้งค่าเป็นแบบฟอร์ม - แม่นยำยิ่งขึ้นชื่อของคลาสซึ่งอยู่ในคลาสForm
    • BackColor: ระบุสีของพื้นหลังของแบบฟอร์ม กดที่พลังอำนาจเราสามารถเลือกสีที่เหมาะสมกับเราจากรายการสีที่แนะนำหรือจานสี
    • ภาพพื้นหลัง: แสดงบนภาพพื้นหลังของแบบฟอร์ม
    • BackgroundImageLayout: แสดงผลเป็นรูปภาพ ซึ่งตั้งค่าเป็นพาวเวอร์ BackgroundImage ให้ปรากฏบนแบบฟอร์ม
    • ControlBox: ระบุว่าจะแสดงเมนูแบบฟอร์มหรือไม่ ที่ ถึงประเภทนี้โดยเฉพาะใต้เมนูจะเข้าใจเมนูของระดับที่สำคัญที่สุดซึ่งพบไอคอนโปรแกรมชื่อแบบฟอร์มรวมถึงปุ่มย่อเล็กสุดแบบฟอร์มที่ข้าม หากพลังอาจเป็นเท็จเราก็ไม่ต้องการไอคอนใด ๆ ไม่มีกากบาทสำหรับความช่วยเหลือซึ่งแบบฟอร์มจะดังขึ้น
    • เคอร์เซอร์: กำหนดประเภทของเคอร์เซอร์ที่พิมพ์บน form
    • เปิดใช้งาน: เนื่องจากสามารถตั้งค่าพลังงานเป็นเท็จ คุณไม่สามารถยอมรับอินพุตเป็นกล่องข้อความ ดังนั้นคุณจึงไม่สามารถคลิกปุ่ม ป้อนข้อความในกล่องข้อความ และอื่นๆ
    • แบบอักษร: ตั้งค่าแบบอักษรสำหรับทุกรูปแบบและทุกตำแหน่ง Prote เมื่อตั้งค่าฟอนต์ของคุณเองสำหรับองค์ประกอบของแบบฟอร์ม เราสามารถกำหนดโยคะใหม่ได้
    • ForeColor: สีแบบอักษรบนแบบฟอร์ม
    • FormBorderStyle: ระบุว่าควรแสดงแถวส่วนหัวระหว่างแบบฟอร์มอย่างไร สามารถสร้างพลังคืนเป็น None ได้ ดูเก่าอาหารเสริมรูปร่างสมส่วน
    • HelpButton: ระบุว่าปุ่มสำหรับการจบแบบฟอร์มจะปรากฏขึ้นหรือไม่
    • ไอคอน: ตั้งค่าไอคอนของแบบฟอร์ม
    • ตำแหน่ง: กำหนดตำแหน่งที่สัมพันธ์กับมุมบนซ้ายของหน้าจอ ดังนั้นพลังงาน StartPosition จะถูกตั้งค่าเป็น Manual
    • MaximizeBox: ระบุว่าปุ่มขยายหน้าต่างใหญ่สุดในส่วนหัวของฟอร์มจะใช้งานได้หรือไม่
    • MinimizeBox: ระบุว่าปุ่มย่อขนาดหน้าต่างจะพร้อมใช้งานหรือไม่
    • MaximumSize: กำหนดขนาดสูงสุดของ form
    • ขนาดขั้นต่ำ: กำหนดขนาดต่ำสุดของแบบฟอร์ม
    • ความทึบ: ตั้งค่าความโปร่งใสของแบบฟอร์ม
    • ขนาด: เลือกรูปแบบ cob rozmіr
    • StartPosition: ระบุตำแหน่งเริ่มต้นซึ่งรูปแบบจะปรากฏบนหน้าจอ
    • ข้อความ: ตั้งชื่อของแบบฟอร์ม
    • ด้านบนสุด: หากสามารถตั้งค่าพลังงานเป็น จริง แบบฟอร์มจะปรากฏที่ด้านบนของหน้าต่างอื่นเสมอ
    • มองเห็นได้: หากมองเห็นแบบฟอร์มได้หากต้องการแนบแบบฟอร์มกับคอรีสตูวาเช่เราสามารถตั้งค่าพลังนี้เป็นเท็จ
    • WindowState: ระบุว่าควรรีบูทฟอร์มใดเมื่อเริ่มต้น: Normal, Maximized หรือ Minimized
    การเขียนโปรแกรมของหน่วยงาน
    สำหรับความช่วยเหลือเกี่ยวกับความสำคัญของอำนาจในพลังแห่งอำนาจ เราสามารถเปลี่ยนรูปลักษณ์ที่เป็นทางการของแบบฟอร์มเป็นการตัดสินของเราเอง และเราสามารถสร้างสิ่งเดียวกันนี้แบบไดนามิกในโค้ดได้ ไปที่โค้ดกันที่เราคลิกขวาบนแบบฟอร์มและเลือกในเมนูบริบทดูโค้ด เรามีไฟล์โค้ดอยู่ข้างหน้าเรา แบบฟอร์ม1.cs. เปลี่ยนโยคะเช่นนี้:

    การใช้ระบบ
    ผู้ชนะ System.Collections.Generic;
    ใช้ System.ComponentModel;
    ใช้ System.Data;
    ระบบผู้ชนะ. การวาดภาพ;
    ใช้ System.Linq;
    ใช้ System.Text;
    ผู้ชนะ System.Threading.Tasks;
    ใช้ System.Windows.Forms;

    เนมสเปซ HelloApp
    {
    ชั้นเรียนบางส่วนสาธารณะ Form1: Form
    {
    แบบฟอร์มสาธารณะ1()
    {
    InitializeComponent();
    Text = "สวัสดีชาวโลก!";
    this.BackColor = Color.Aquamarine;
    this.Width = 250;
    นี่ความสูง = 250;
    }
    }
    }

    ด้วยวิธีนี้ เราปรับปรุงkіlkaของการครอบงำในรูปแบบ: ส่วนหัว, สีพื้นหลัง, ความกว้างและความสูง เมื่อเปลี่ยนตัวสร้างแบบฟอร์ม คุณต้องตรวจสอบว่าโค้ดควรจะอยู่หลังการเรียกเมธอด InitializeComponent() ดังนั้นการตั้งค่าพลังงานทั้งหมดที่นี่จะเปลี่ยนเป็นวิธีถัดไป

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

    This.Size = ขนาดใหม่(200,150);
    ออบเจ็กต์ Size จะถูกเติมในตัวสร้างด้วยค่าตัวเลขสำหรับการตั้งค่าความกว้างและความสูง

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

    • คู่มือ: ตำแหน่งของแบบฟอร์มขึ้นอยู่กับอำนาจของ Location
    • CenterScreen: ตำแหน่งของแบบฟอร์มที่กึ่งกลางของหน้าจอ
    • WindowsDefaultLocation: ตำแหน่งของแบบฟอร์มบนหน้าจอถูกกำหนดโดยระบบ Windows และขนาดจะถูกกำหนดโดยขนาดพลังงาน
    • WindowsDefaultBounds: ตำแหน่งเริ่มต้นและขนาดของแบบฟอร์มบนหน้าจอถูกกำหนดโดยระบบ Windows
    • CenterParent: ตำแหน่งของแบบฟอร์มถูกตั้งค่าไว้ที่กึ่งกลางของหน้าต่าง Batkivsky
    ค่าทั้งหมดจะถูกย้ายไปยังกล่อง FormStartPosition ตัวอย่างเช่น วางแบบฟอร์มไว้ตรงกลางหน้าจอ เราต้องเขียนดังนี้:

    This.StartPosition = FormStartPosition.CenterScreen;
    พื้นหลังของรูปแบบสี
    ในการตั้งค่าสีเป็นพื้นหลังของแบบฟอร์ม ดังนั้นสำหรับแบบอักษร เราจำเป็นต้องเน้นค่าสีที่จัดเก็บไว้ในโครงสร้างสี:

    นี่.BackColor = Color.Aquamarine;
    this.ForeColor = Color.Red;
    นอกจากนี้ เราสามารถตั้งค่าพื้นหลังของรูปภาพในพื้นหลังของ BackgroundImage โดยวาดเป็นรูปภาพของหน่วยงานหรือรหัส ระบุเส้นทางไปยังรูปภาพ:

    This.BackgroundImage = Image.FromFile("C:\Users\Eugene\Pictures\3332.jpg");
    เพื่อที่จะปรับปรุงความจำเป็นสำหรับเราในการแสดงภาพพื้นหลัง เราต้องได้รับพลังของ BackgroundImageLayout ดังนั้นคุณสามารถใช้ค่าใดค่าหนึ่งต่อไปนี้:

    • ไม่มี: รูปภาพจะย้ายไปที่มุมซ้ายบนของแบบฟอร์มและบันทึกค่า cob ของมัน
    • ไทล์: รูปภาพถูกวางบนแบบฟอร์มในรูปแบบของโมเสค
    • ตรงกลาง: รูปภาพของการเย็บตรงกลางแบบฟอร์ม
    • ยืด: รูปภาพขยายขนาดโดยไม่รักษาสัดส่วน
    • ซูม: รูปภาพจะขยายให้พอดีกับรูปร่างเพื่อบันทึกสัดส่วน
    ตัวอย่างเช่น มาขยายรูปร่างตรงกลางหน้าจอกัน:

    This.StartPosition = FormStartPosition.CenterScreen;

  4. https://metanit.com/sharp/windowsforms/2.3.php

    การเพิ่มแบบฟอร์ม ปฏิสัมพันธ์ระหว่างแบบฟอร์ม

    หากต้องการเพิ่มฟอร์มให้กับโปรเจ็กต์ ให้คลิกขวาที่โปรเจ็กต์ในหน้าต่าง Solution Explorer แล้วเลือก Add(Add)->Windows Form...

    Damo รูปแบบใหม่ yakes im'ya ตัวอย่างเช่น แบบฟอร์ม2.cs:

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


    {

    }
    ตอนนี้ dodamo ไปที่รหัส wiki ใหม่ของรูปแบบอื่น เรามีรูปแบบอื่นที่เรียกว่า Form2 ดังนั้นเราจึงสร้างวัตถุของคลาสนี้ จากนั้นสำหรับการแสดงผลนี้บนหน้าจอ เราคลิกวิธีการแสดง:

    โมฆะส่วนตัว button1_Click (ผู้ส่งอ็อบเจ็กต์ EventArgs e)
    {
    Form2 newForm = ใหม่ Form2();
    newForm.Show();
    }
    ตอนนี้ zrobimo navpaki - อีกรูปแบบหนึ่งติดอยู่ในพริกไทย ในขณะนี้รูปแบบอื่นไม่ทราบเกี่ยวกับพื้นฐานของรูปแบบแรก หากต้องการแก้ไข คุณต้องใช้แบบฟอร์มอื่นเพื่อโอนข้อมูลเกี่ยวกับแบบฟอร์มแรก สำหรับผู้ที่เร็วกว่าโดยการถ่ายโอนคำขอไปยังแบบฟอร์มจากตัวสร้าง

    จากนั้นไปที่แบบฟอร์มอื่นแล้วไปที่รหัส її - คลิกขวาที่แบบฟอร์มแล้วเลือกดูรหัส ตราบใดที่ไวน์ยังว่างเปล่า การแก้แค้นคอนสตรัคเตอร์ก็ไม่เพียงพอ Oskіlki C# podtrimu rebinding method เราสามารถสร้าง method และ constructors ได้ พารามิเตอร์ต่างๆที่ตกอยู่ในสถานการณ์วิกิกะติหนึ่งในนั้น อีกครั้ง เปลี่ยนไฟล์เป็นรหัสของรูปแบบอื่นสำหรับการโจมตี:

    การใช้ระบบ
    ผู้ชนะ System.Collections.Generic;
    ใช้ System.ComponentModel;
    ใช้ System.Data;
    ระบบผู้ชนะ. การวาดภาพ;
    ใช้ System.Linq;
    ใช้ System.Text;
    ผู้ชนะ System.Threading.Tasks;
    ใช้ System.Windows.Forms;

    เนมสเปซ HelloApp
    {
    ชั้นเรียนบางส่วนสาธารณะ Form2: Form
    {
    แบบฟอร์มสาธารณะ2()
    {
    InitializeComponent();
    }

    แบบฟอร์มสาธารณะ2(Form1 f)
    {
    InitializeComponent();
    f.BackColor = สี สีเหลือง;
    }
    }
    }
    อันที่จริง เด็ก ๆ ได้เพิ่มตัวสร้าง Form2(Form1 f) สาธารณะตัวใหม่ที่นี่ ซึ่งในกรณีนี้ เราจำเป็นต้องเปลี่ยนแบบฟอร์มและตั้งค่าให้เป็นสีเดียวกัน ตอนนี้เรามาดูรหัสของแบบฟอร์มแรก Demi โทรหาเพื่อนในรูปแบบของการเปลี่ยนแปลง yogo ในการรุก:

    โมฆะส่วนตัว button1_Click (ผู้ส่งอ็อบเจ็กต์ EventArgs e)
    {
    Form2 newForm = ใหม่ Form2 (นี้);
    newForm.Show();
    }
    ชาร์ดในคีย์เวิร์ดประเภทนี้ซึ่งแสดงถึงการส่งไปยังอ็อบเจ็กต์ปัจจุบัน - อ็อบเจ็กต์ Form1 จากนั้นเมื่อสร้างฟอร์มอื่น ฟอร์มแรกจะถูกลบออกไป

    ตอนนี้หลังจากกดปุ่มแล้วเราจะสร้างแบบฟอร์มอื่นเพื่อเปลี่ยนสีของแบบฟอร์มแรก

    เรายังสามารถสร้างอ็อบเจกต์ที่ไหลออกมาได้:

    โมฆะส่วนตัว button1_Click (ผู้ส่งอ็อบเจ็กต์ EventArgs e)
    {
    Form1 newForm1 = ใหม่ Form1();
    newForm1.Show();
    Form2 newForm2 = ใหม่ Form2 (newForm1);
    newForm2.Show();
    }
    เมื่อทำงานกับ dekilcom จำเป็นต้องตรวจสอบกับแบบฟอร์มว่ารูปแบบใดรูปแบบหนึ่งเป็นส่วนหัว เนื่องจากมีการเปิดตัวครั้งแรกที่ไฟล์ Program.cs ทันทีที่เปิดแบบฟอร์มจำนวนมากในตัวเราทันที เมื่อปิดส่วนหัว โปรแกรมทั้งหมดจะปิด และในขณะเดียวกันก็มีรูปแบบอื่นๆ ทั้งหมดอยู่ด้วย

  5. https://metanit.com/sharp/windowsforms/2.4.php

    Podіїแบบฟอร์ม Windows ส่งแบบฟอร์ม

    สำหรับการโต้ตอบกับ Windows Forms มีกลไกย่อย พ็อดใน Windows Forms เป็นตัวแทนของซับมาตรฐานใน C# ซึ่งติดอยู่กับส่วนประกอบที่มองเห็นได้เท่านั้นและจัดเรียงตามกฎเดียวกันกับใน C# แต่ยังคงมีลักษณะเฉพาะบางอย่างในการสร้าง Windows Forms

    สำหรับ WinForms จะมีชุดอินพุตมาตรฐาน ซึ่งบางส่วนจะดีที่สุดสำหรับส่วนประกอบที่เป็นภาพทั้งหมด Okremі elementi เพิ่มpodіїของพวกเขา แต่หลักการทำงานกับพวกเขาจะคล้ายกัน ในการดูองค์ประกอบย่อยทั้งหมดขององค์ประกอบ เราจำเป็นต้องเลือกองค์ประกอบจากฟิลด์ตัวออกแบบกราฟิกและไปที่แท็บย่อยบนแผงแบบฟอร์ม ตัวอย่างเช่น แบบฟอร์มย่อย:

    ในการเพิ่มตัวอย่าง คุณสามารถคลิกที่ช่องว่างพร้อมกับคำสั่งจากชื่อย่อย จากนั้น Visual Studio จะสร้างตัวอย่างของย่อยโดยอัตโนมัติ ตัวอย่างเช่น กด เพื่อสร้างตัวอย่างสำหรับโหลดย่อย:

    ฟิลด์ І tse จะแสดงขึ้นโดยการตั้งชื่อเมธอดของแซมเพลอร์ภายใต้โหลด สำหรับโปรโมชั่น ไวน์จะเรียกว่า Form1_Load

    ไปที่ไฟล์ Form1.cs กันเถอะ เรามาสร้างเมธอด Form1_Load โดยอัตโนมัติ:


    {
    แบบฟอร์มสาธารณะ1()
    {
    InitializeComponent();
    }


    {

    }
    }
    І กรณีเกิดภาวะพัวพันทางผิวหนัง ให้ใช้โค้ดในแบบฟอร์ม Form1_Load

    ตามกฎแล้ว นักสะสมส่วนใหญ่ขององค์ประกอบภาพต่างๆ มีสองพารามิเตอร์: ผู้ส่ง - วัตถุที่เริ่มต้นย่อย อาร์กิวเมนต์ที่รวบรวมข้อมูลเกี่ยวกับส่วนย่อย (ใน EventArgs e นี้)

    Ale tse lisher obrobnik. ในการเพิ่มเวิร์กบุ๊กที่สร้างขึ้นในอันดับดังกล่าว ให้ไปที่ไฟล์ Form1.Designer.cs:

    เนมสเปซ HelloApp
    {
    คลาสบางส่วน Form1
    {
    ส่วนประกอบ System.ComponentModel.IContainer ส่วนตัว = null;

    แทนที่การป้องกันเป็นโมฆะ กำจัด (การกำจัดบูล)
    {
    if (การกำจัด && (ส่วนประกอบ != null))
    {
    ส่วนประกอบ.dispose();
    }
    ฐานทิ้ง (ทิ้ง);
    }
    โมฆะส่วนตัว InitializeComponent()
    {
    this.SuspendLayout();

    This.AutoScaleDimensions = ระบบใหม่ Drawing.SizeF (6F, 13F);
    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    this.ClientSize = ใหม่ System.Drawing.Size (284, 261);
    this.Name = "Form1";
    // เพิ่มโรงเบียร์
    this.Load += ใหม่ System.EventHandler (this.Form1_Load);
    this.ResumeLayout(เท็จ);
    }
    }
    }
    ในการเพิ่มแบบทดสอบ จะใช้ไวยากรณ์ C# มาตรฐาน: this.Load += System.EventHandler(this.Form1_Load)

    ดังนั้น หากเราต้องการเห็นการสร้างสรรค์ในลักษณะเดียวกัน เราไม่เพียงต้องดูวิธีการด้วยโค้ดของแบบฟอร์มใน Form1.cs เท่านั้น แต่ยังต้องเพิ่มตัวค้นหาในไฟล์นี้ด้วย

    ตัวอย่างเช่น เราสามารถเพิ่มรายละเอียดของ sub และโดยทางโปรแกรม ตัวอย่างเช่น ในตัวสร้างแบบฟอร์ม:

    การใช้ระบบ
    ผู้ชนะ System.Collections.Generic;
    ใช้ System.ComponentModel;
    ใช้ System.Data;
    ระบบผู้ชนะ. การวาดภาพ;
    ใช้ System.Linq;
    ใช้ System.Text;
    ผู้ชนะ System.Threading.Tasks;
    ใช้ System.Windows.Forms;

    เนมสเปซ HelloApp
    {
    ชั้นเรียนบางส่วนสาธารณะ Form1: Form
    {
    แบบฟอร์มสาธารณะ1()
    {
    InitializeComponent();
    this.Load += LoadEvent;
    }

    โมฆะส่วนตัว Form1_Load (ผู้ส่งวัตถุ, EventArgs e)
    {
    }

    โมฆะส่วนตัว LoadEvent (ผู้ส่งวัตถุ EventArgs e)
    {

    }
    }
    }
    Krim ก่อนสร้างเวิร์กบุ๊ก Form1_Load ที่สร้างขึ้น นี่คือการเพิ่มเวิร์กบุ๊กของฟอร์มอื่น: this.Load += LoadEvent; ซึ่งตั้งค่าพื้นหลังสีใหม่

  6. https://metanit.com/sharp/windowsforms/2.5.php

    การสร้างรูปทรงสี่เหลี่ยม ปิดแบบฟอร์ม

    ด้านหลังล็อค Windows Forms นั้นตรงไปตรงมา Prote mi เราสามารถสร้างและโดยอ้อมรูปแบบ dovilni สำหรับผู้ที่มีอำนาจที่จะชนะภูมิภาค เนื่องจากความหมายของมันคือวัตถุที่มีชื่อเดียวกันกับชั้นภาค

    เมื่อรูปที่มิใช่รูปสี่เหลี่ยมผืนผ้าชนกัน เสียง รูประหว่างรูปไม่สั่น เศษของวงล้อมจะได้รับจากวัตถุภาค หากต้องการใช้ระหว่างแบบฟอร์ม คุณต้องตั้งค่าสิทธิ์ของ FormBorderStyle ของแบบฟอร์มเป็นไม่มี

    และอีกประการหนึ่งซึ่งจำเป็นต้องได้รับการปกป้อง poling ใน displaced, ปิด, maximizing และรูปแบบ minimizing. ด้วยวิธีนี้ เช่นเดียวกับในรูปแบบหลัก เราไม่สามารถกดกากบาทเพื่อปิดแบบฟอร์ม เราไม่สามารถย้ายไปยังที่ใหม่ นั่นคือเหตุผลที่จำเป็นต้องกำหนดตรรกะของโปรแกรมนี้

    Otzhe ไปที่โค้ดแบบฟอร์มแล้วเปลี่ยนด้วยอันดับที่จะมาถึง:

    การใช้ระบบ
    ผู้ชนะ System.Collections.Generic;
    ใช้ System.ComponentModel;
    ใช้ System.Data;
    ระบบผู้ชนะ. การวาดภาพ;
    ใช้ System.Linq;
    ใช้ System.Text;
    ผู้ชนะ System.Threading.Tasks;
    ใช้ System.Windows.Forms;

    เนมสเปซ HelloApp
    {
    ชั้นเรียนบางส่วนสาธารณะ Form1: Form
    {
    ย้ายจุดเริ่ม; //ชี้เพื่อย้าย

    แบบฟอร์มสาธารณะ1()
    {
    InitializeComponent();
    this.FormBorderStyle = FormBorderStyle.None;
    this.BackColor = สี สีเหลือง;
    button1.Text = "ปิด";
    }

    โมฆะส่วนตัว button1_Click (ผู้ส่งอ็อบเจ็กต์ EventArgs e)
    {
    this.Close();
    }

    โมฆะส่วนตัว Form1_Load (ผู้ส่งวัตถุ, EventArgs e)
    {
    System.Drawing.Drawing2D.GraphicsPath myPath = ใหม่ System.Drawing.Drawing2D.GraphicsPath();
    // สร้างวงรีที่มีความสูงและความกว้างของแบบฟอร์ม
    myPath.AddEllipse(0, 0, this.Width, this.Height); myPath.AddEllipse(0, 0, this.Width, this.Height);
    // สร้างเพื่อขอความช่วยเหลือ elіpsuสร้างพื้นที่นั้นตามที่คุณต้องการ bachiti
    ภูมิภาค myRegion = ภูมิภาคใหม่ (myPath);
    // กำหนดพื้นที่ที่มองเห็นได้
    this.Region = myRegion;
    }

    โมฆะส่วนตัว Form1_MouseDown (ผู้ส่งวัตถุ, MouseEventArgs e)
    {

    ถ้า (e.Button == MouseButtons.Left)
    {
    moveStart = จุดใหม่ (e.X, e.Y);
    }
    }

    โมฆะส่วนตัว Form1_MouseMove (ผู้ส่งวัตถุ, MouseEventArgs e)
    {
    // กดปุ่มซ้ายของเมาส์
    ถ้า ((e.Button & MouseButtons.Left) != 0)
    {
    // ใช้จุดตำแหน่งรูปแบบใหม่
    จุด deltaPos = จุดใหม่ (e.X - moveStart.X, e.Y - moveStart.Y);
    // กำหนดตำแหน่งแบบฟอร์ม
    this.Location = จุดใหม่ (this.Location.X + deltaPos.X,
    this.Location.Y + deltaPos.Y);
    }
    }
    }
    }

    มีการตรวจสอบการสร้างพื้นที่แบบฟอร์มในโปรเจ็กต์ย่อย Form1_Load สำหรับการสร้างพื้นที่ เส้นทางกราฟิกจะถูกวาด - วัตถุของคลาส System.Drawing.Drawing2D.GraphicsPath ซึ่งมีการเพิ่มจุดไข่ปลา วิธีกราฟิกช่วยให้คุณสร้างร่างได้ ไม่ว่าจะเป็นแบบฟอร์ม หากเราต้องการรูปแบบที่เห็นดาวทะเล ก็จำเป็นต้องแก้ไขวิธีกราฟิกที่ได้รับชัยชนะด้วยอันดับที่เหมาะสม

    หากต้องการปิดแบบฟอร์มในแบบฟอร์มโดยกดปุ่ม button1_Click แบบฟอร์มจะปิดโดยโปรแกรม: this.Close()

    สำหรับการย้ายแบบฟอร์ม จะมีการประมวลผลแบบฟอร์มย่อยสองรูปแบบ - กดปุ่มของเมาส์และเลื่อนปุ่มของเมาส์

  7. https://metanit.com/sharp/windowsforms/3.1.php

    คอนเทนเนอร์ในแบบฟอร์ม Windows

    สำหรับการจัดองค์ประกอบการจัดการของกลุ่มจำเป็นต้องใช้องค์ประกอบพิเศษ - คอนเทนเนอร์ ตัวอย่างเช่น แผง, FlowLayoutPanel, SplitContainer, GroupBox แบบฟอร์มเดียวกันสามารถนำไปบรรจุในภาชนะได้ ทางเลือกของคอนเทนเนอร์นั้นเบากว่าในแง่ขององค์ประกอบและในรูปแบบของการร้องเพลงในรูปแบบภาพ

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

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

    การลากองค์ประกอบจากแถบเครื่องมือทำให้เราสามารถเพิ่มองค์ประกอบใหม่ลงในแม่พิมพ์ได้อย่างง่ายดาย อย่างไรก็ตาม ชาร์ดมักจะต้องสร้าง (ดู) องค์ประกอบในแบบฟอร์มแบบไดนามิกเพื่อสร้างสภาพแวดล้อมให้สมบูรณ์

    สำหรับการเพิ่มองค์ประกอบแบบไดนามิก เราสร้างตัวอย่างรูปแบบการป้อนข้อมูลสำหรับรหัสไฟล์:


    {
    }
    ตอนนี้เพิ่มรหัสใหม่เพื่อเพิ่มปุ่มลงในแบบฟอร์ม:

    โมฆะส่วนตัว Form1_Load (ผู้ส่งวัตถุ, EventArgs e)
    {


    helloButton.ForeColor = Color.DarkGray;
    helloButton.Location = NewPoint(10, 10);

    this.Controls.Add (helloButton);
    }
    ที่ด้านหลังเราสร้างปุ่มที่ติดตั้งในพลังงาน จากนั้น ใช้เมธอด Controls.Add เราเพิ่มลงในคอลเล็กชันขององค์ประกอบของฟอร์ม เราไม่ได้ทำลาย yakby เราจะไม่เขย่าปุ่ม เราไม่ได้ฝันที่จะแตกเป็นชิ้นเล็กชิ้นน้อยสำหรับแบบฟอร์มของเรา

    สำหรับความช่วยเหลือของเมธอด Controls.Remove() คุณสามารถลบองค์ประกอบออกจากแบบฟอร์มก่อนเพิ่มได้:

    นี่.Controls.Remove(helloButton);

    หากคุณต้องการใช้แบบฟอร์มในลักษณะนี้เป็นคอนเทนเนอร์ แต่ถ้าคุณเพิ่มองค์ประกอบที่เพิ่มจากคอนเทนเนอร์อื่น เช่น GroupBox คุณจะ zastosovuvatsya วิธีการของคุณเอง

  8. https://metanit.com/sharp/windowsforms/3.2.php

    Elements GroupBox, Panel และ FlowLayoutPanel

    GroupBox ในคอนเทนเนอร์พิเศษที่ล้อมรอบด้วยวงล้อม Vіnmaєหัวเรื่องซึ่งติดตั้งผ่าน ข้อความผู้มีอำนาจ. หากต้องการวางไข่ GroupBox โดยไม่มีชื่อ เนื่องจากค่าพลังของข้อความ ให้แทรกแถวว่างลงไป

    มักใช้องค์ประกอบนี้สำหรับการจัดกลุ่มการเปลี่ยน - องค์ประกอบ RadioButton ชาร์ดช่วยให้คุณแยกกลุ่มเหล่านี้ออก

    องค์ประกอบแผงแสดงถึงแผง เช่น GroupBox ที่รวมองค์ประกอบเข้าเป็นกลุ่ม รูปลักษณ์ภายนอกอาจดูโกรธจัด แต่ก็สามารถมีสีพื้นหลังที่มีความหมายเช่น BackColor ซึ่งเป็นรูปร่างได้ คุณจะเห็นว่าคุณสามารถระบุสีสำหรับองค์ประกอบในวงล้อมเพื่อเพิ่มพลัง BorderStyle สำหรับการล็อคความหมายของไม่มี นั่นคือความแตกต่างระหว่าง

    นอกจากนี้ เนื่องจากแผงสามารถมีองค์ประกอบมากมายที่อยู่นอกกรอบ เราจึงสามารถสร้างแผงที่เลื่อนโดยตั้งค่าพลังงาน AutoScroll ให้เป็นจริง

    ในรูปแบบ GroupBox และพาเนลสามารถมีคอลเลกชั่นขององค์ประกอบ และเรายังสามารถเพิ่มองค์ประกอบในคอนเทนเนอร์แบบไดนามิกได้อีกด้วย ตัวอย่างเช่น ในแบบฟอร์มจะมีองค์ประกอบ GroupBox ซึ่งอาจเป็น groupBox1:

    โมฆะส่วนตัว Form1_Load (ผู้ส่งวัตถุ, EventArgs e)
    {
    ปุ่ม helloButton = NewButton ();
    helloButton.BackColor = Color.LightGray;
    helloButton.ForeColor = สีแดง;
    helloButton.Location = รายการใหม่ (30, 30);
    helloButton.Text = "สวัสดี";
    groupBox1.Controls.Add (helloButton);
    }
    ในการแทรกเลย์เอาต์ขององค์ประกอบลงในคอนเทนเนอร์ ให้ใช้โครงสร้าง Point: new Point(30, 30) ซึ่งถูกส่งไปยังคอนสตรัคเตอร์ตามแกน X และ Y

    เมื่อคุณต้องการให้แน่ใจว่าคอนเทนเนอร์ระดับบนสุดเป็นแบบฟอร์ม และองค์ประกอบ groupBox1 นั้นอยู่ในคอลเลกชันขององค์ประกอบแบบฟอร์ม ฉันเห็นโยโกหลังบาซานยา:

    นี่.Controls.Remove(groupBox1);
    FlowLayoutPanel
    องค์ประกอบ FlowLayoutPanel ยุบลงในคลาสพาเนล ดังนั้นจึงยุบอำนาจทั้งหมด อย่างไรก็ตาม การเพิ่มฟังก์ชันการทำงานเพิ่มเติม ดังนั้นองค์ประกอบนี้ช่วยให้คุณเปลี่ยนตำแหน่งและเลย์เอาต์ขององค์ประกอบย่อยในเวลาที่เปลี่ยนแปลงเวลาของการเปลี่ยนแปลงของแบบฟอร์มและในเวลาสิ้นสุดของโปรแกรม

    พลังขององค์ประกอบ FlowDirection ช่วยให้คุณตั้งค่าได้โดยตรงในทิศทางใด องค์ประกอบลูก. ด้านหลังล็อค ค่าของ LeftToRight - เพื่อให้องค์ประกอบหมุนช้าๆ ไปในทิศทางของขอบด้านซ้ายบน ขั้นตอนในการไปทางขวามือ พลังนี้ยังมีความหมายดังต่อไปนี้:

    • RightToLeft – องค์ประกอบจะหมุนจากมุมขวาบนไปด้านซ้าย
    • จากบนลงล่าง - องค์ประกอบเดินเตร่ออกจากมุมบนซ้ายแล้วลงไป
    • BottomUp - องค์ประกอบถูกวางไว้ที่มุมล่างซ้ายแล้วขึ้นเนิน

    เมื่อวางองค์ประกอบ บทบาทสำคัญจะเล่นอำนาจของ WrapContents เบื้องหลังโปรโมชั่นอาจเป็นทรู สิ่งนี้ทำให้คุณสามารถถ่ายโอนองค์ประกอบที่ไม่พอดีกับ FlowLayoutPanel ไปยังแถวใหม่หรือหน้าใหม่ หากค่าเป็น "เท็จ" องค์ประกอบจะไม่ถูกส่งต่อ และคอนเทนเนอร์จะถูกเลื่อนไปมาอย่างง่าย ๆ เพื่อให้พลังของ AutoScroll เป็นจริง
  9. https://metanit.com/sharp/windowsforms/3.3.php

    TableLayoutPanel

    องค์ประกอบ TableLayoutPanel ยังแสดงผลแผงอีกครั้งและสามารถควบคุมลูกในมุมมองตารางได้ แต่สำหรับองค์ประกอบสกินจะมีห้องของตัวเอง หากเราต้องการวางองค์ประกอบมากกว่าหนึ่งรายการในห้อง องค์ประกอบ TableLayoutPanel อื่นจะถูกเพิ่มเข้าไปในห้อง และองค์ประกอบอื่นๆ จะถูกใส่เข้าไป

    เพื่อกำหนดจำนวนแถวในคอลัมน์ของตาราง เราสามารถชนะพลังของแถวและคอลัมน์ได้อย่างชัดเจน เมื่อเลือกจุดใดจุดหนึ่งเหล่านี้ที่หน้าต่างคุณสมบัติ (Power) แล้ว เราคิดว่าขั้นตอนต่อไปคือการตั้งค่าคอลัมน์และแถว:

    สำหรับฟิลด์ Size Type เราสามารถระบุขนาดของคอลัมน์ / แถวได้ เรามีสามตัวเลือกที่เป็นไปได้:

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

    ในกล่องโต้ตอบนี้ เรายังสามารถเพิ่มหรือลบแถวและคอลัมน์ได้ ในเวลาเดียวกัน นักออกแบบกราฟิกของ Visual Studio ไม่ได้เริ่มเพิ่มการเปลี่ยนแปลงในตาราง - เพิ่มหรือเพิ่มแถวและ stowpts การเปลี่ยนแปลงเค้าโครงเนื่องจากการเปลี่ยนแปลงในแบบฟอร์มไม่พร้อมใช้งาน คุณต้องปิดแล้วต่ออายุ นักออกแบบในการออกแบบกราฟิก

    ตัวอย่างเช่นฉันมีสามแถวและส่วนขยายสามแถวที่มีความคล้ายคลึงกัน - 33.33% เพิ่มปุ่มในสกิน com_rku ของตาราง เพื่อให้ Dock=Fill มีพลัง

    ถ้าฉันเปลี่ยนขนาดของแบบฟอร์ม แถวและคอลัมน์จะถูกปรับขนาดโดยอัตโนมัติพร้อมกันโดยการวางปุ่มในนั้น:

    สิ่งที่ต้องทำด้วยตนเองสำหรับการสร้างอินเทอร์เฟซที่ปรับขนาดได้

    เราสามารถเปลี่ยนค่าของคอลัมน์และแถวของโค้ดแบบไดนามิกได้ นอกจากนี้ คอลัมน์ทั้งหมดจะแสดงด้วยประเภท ColumnStyle และแถวตามประเภท RowStyle:

    TableLayoutPanel1.RowStyles.SizeType = SizeType.Percent;
    tableLayoutPanel1.RowStyles.Height = 40;

    TableLayoutPanel1.ColumnStyles.SizeType = SizeType.Absolute;
    tableLayoutPanel1.ColumnStyles.Width = 50;
    ในการตั้งค่าขนาดใน ColumnStyle และ RowStyle พลังของ SizeType จะถูกตั้งค่าเพื่อให้หนึ่งตั้งค่าของการเปลี่ยนชื่อเดียวของ SizeType

    การเพิ่มองค์ประกอบไปยังคอนเทนเนอร์ TableLayoutPanel มีลักษณะเฉพาะของตัวเอง เราสามารถใส่โยคะเข้าไปตรงกลางโต๊ะว่างที่ไม่เหมาะสม หรือจะโชว์ตรงกลางโต๊ะตามลำดับที่ชัดเจนก็ได้:

    ปุ่ม saveButton = NewButton ();
    // เพิ่มปุ่มในช่วงบ่ายที่จะมาถึง
    tableLayoutPanel1.Controls.Add (บันทึกปุ่ม);
    // เพิ่มปุ่มให้กับนายหน้า (2,2)
    tableLayoutPanel1.Controls.Add (บันทึกปุ่ม, 2, 2);

    ด้วยวิธีนี้ เราเพิ่มปุ่มไปที่ตู้เสื้อผ้า ซึ่งวางอยู่ที่แถวที่สามและแถวที่สาม จริงอยู่ เนื่องจากเรามีแถวและแถวไม่มากนัก ระบบจะเลือกตรงกลางที่ต้องการเพิ่มโดยอัตโนมัติ

  10. https://metanit.com/sharp/windowsforms/3.4.php

    การขยายองค์ประกอบและตำแหน่งในคอนเทนเนอร์



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

    นอกจากนี้เรายังสามารถกำหนดตำแหน่งขององค์ประกอบในรหัส:

    1
    2
    3
    4
    โมฆะส่วนตัว Form1_Load (ผู้ส่งวัตถุ EventArgs e)
    {
    button1.Location = NewPoint(50, 50);
    }
    การติดตั้งส่วนขยาย
    หากต้องการเพิ่มพลังของ Size คุณสามารถกำหนดขนาดขององค์ประกอบได้:

    การเพิ่มพลังของ MaximumSize และ MinimumSize ช่วยให้คุณสามารถกำหนดขนาดต่ำสุดและสูงสุดได้

    การตั้งค่าอำนาจสำหรับรหัส:

    1
    2
    3
    4
    button1.Size = ขนาดใหม่ ( กว้าง = 50 สูง = 25 );
    // กำหนดพลังของ okremo
    ปุ่ม1.ความกว้าง = 100;
    ปุ่ม1.ความสูง = 35;
    พาวเวอร์สมอ
    เพิ่มความสามารถในการจัดตำแหน่งองค์ประกอบช่วยให้เห็นความสำคัญของพลัง Anchor กำลังอยู่ระหว่างด้านหนึ่งขององค์ประกอบและอีกด้านหนึ่งของคอนเทนเนอร์ ถ้าเมื่อทำงานกับคอนเทนเนอร์ ฉันสามารถดึงมันออกจากกัน ในเวลาเดียวกัน มันจะดึงสิ่งที่แนบมาขององค์ประกอบออก

    หลังล็อคองค์ประกอบสกิน คุณรู้อะไรไหม พลังของมันแข็งแกร่งกว่า บนซ้าย:

    Tse หมายความว่าเราจะขยายแบบฟอร์มไปทางซ้ายหรือขึ้นเนิน จากนั้นองค์ประกอบจะถูกบันทึกจากด้านซ้ายและขอบด้านบนขององค์ประกอบไปยังเส้นขอบของคอนเทนเนอร์ เนื่องจากแบบฟอร์มจะปรากฏขึ้น

    เราสามารถกำหนดค่าพลังหรือค่าผสมได้มากเท่าที่เป็นไปได้:

  11. ถูกต้อง
  12. ตัวอย่างเช่น เมื่อเราเปลี่ยนความหมายของสิทธิอำนาจบน protilezhne - Bottom, Right จากนั้นเราจะมีตำแหน่งคงที่ระหว่างด้านขวาและด้านล่างขององค์ประกอบและแบบฟอร์ม

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

    ในการตั้งค่าพลังของโค้ด คุณต้องชนะการแปล AnchorStyles:

    1
    2
    3
    button1.Anchor = AnchorStyles.Left;
    // ตั้งค่าชุดค่าผสม
    button1.Anchor = AnchorStyles.Left | AnchorStyles.Top;
    แท่นชาร์จ
    พลังของ Dock ช่วยให้คุณแนบองค์ประกอบไปทางด้านขวาของคอนเทนเนอร์ ด้านหลังล็อค ค่าคือไม่มี แต่ยังให้คุณตั้งค่าได้ห้าค่า:

  • ด้านบน: องค์ประกอบถูกผลักไปที่ด้านบนของคอนเทนเนอร์
  • ด้านล่าง: องค์ประกอบถูกกดไปที่ขอบด้านล่างของคอนเทนเนอร์
  • ซ้าย: องค์ประกอบถูกผลักไปทางด้านซ้ายของคอนเทนเนอร์
  • ขวา: องค์ประกอบติดอยู่ที่ด้านขวาของคอนเทนเนอร์
  • เติม: องค์ประกอบเติมพื้นที่ทั้งหมดของคอนเทนเนอร์
  • https://metanit.com/sharp/windowsforms/3.5.php

    แท็บควบคุม TabControl และ SplitContainer



    TabControl

    องค์ประกอบ TabControl ช่วยให้คุณสร้างองค์ประกอบคีย์แมปที่มีหลายแท็บ І แท็บสกินจะบันทึกชุดขององค์ประกอบการควบคุมอื่นๆ เช่น ปุ่ม ช่องข้อความ และ int แท็บสกินแสดงโดยคลาส TabPage.

    ในการปรับแต่งแท็บขององค์ประกอบ TabControl โดยใช้ power แท็บเพจ. เมื่อองค์ประกอบ TabControl ถูกโอนจากแถบเครื่องมือไปยังแบบฟอร์ม แท็บสองแท็บจะถูกสร้างขึ้นหลังการล็อก - tabPage1 และ tabPage2 มาเปลี่ยนเพื่อเพิ่มพลัง TabPages:

    เราจำเป็นต้องแก้ไข/เพิ่มมุมมองแท็บนั้น:

    แท็บสกินเป็นแผงประเภทหนึ่ง เราจึงสามารถเพิ่มองค์ประกอบหลักอื่นๆ และนำทางไปยังชื่อเรื่อง เพื่อให้เราสามารถนำทางผ่านแท็บต่างๆ ได้ ข้อความของหัวเรื่องถูกตั้งค่าหลังจากข้อความช่วยเหลือ

    โค้งด้วยแถบที่โค้ด
    ในการเพิ่มแท็บใหม่ เราจำเป็นต้องสร้างและเพิ่มไปยังคอลเลกชัน tabControl1.TabPages ที่อยู่เบื้องหลังวิธีการเพิ่ม:

    // เพิ่ม tab
    TabPage newTabPage = TabPage ใหม่ ();
    newTabPage.Text = "ทวีป";
    tabControl1.TabPages.Add(newTabPage);
    วิสัยทัศน์นั้นง่ายเหมือนที่:

    // ดูแท็บ
    // หลัง index
    tabControl1.TabPages.RemoveAt(0);
    // โดยวัตถุ
    tabControl1.TabPages.Remove(newTabPage);
    Otrimuyu ในคอลเลกชัน tabControl1.TabPages จะต้องมีดัชนีแท็บ เราสามารถจัดการได้อย่างง่ายดาย:

    // เปลี่ยนอำนาจ
    tabControl1.TabPages.Text = "แท็บแรก";
    SplitContainer
    องค์ประกอบ SplitContainer ช่วยให้คุณสร้างแผงแยกสองแผง โดยการเปลี่ยนตำแหน่งของตัวแยกสัญญาณ คุณสามารถเปลี่ยนขนาดของแผงเหล่านี้ได้

    การวางแนวพลังแห่งชัยชนะ คุณสามารถติดตั้งในแนวนอนหรือแนวตั้งในตัวแยกบนแบบฟอร์ม ในกรณีนี้ พลังของการเพิ่มมูลค่าของ Horizontal และ Vertical นั้นชัดเจน

    ตัวอย่างเช่น หากคุณต้องการเปลี่ยนตำแหน่งของตัวแยกสัญญาณ คุณสามารถตั้งค่าพลังของ IsSplitterFixed เป็นจริงได้ ในลำดับนี้ ตัวแยกสัญญาณจะปรากฏคงที่ และเราไม่สามารถเปลี่ยนตำแหน่งได้

    สำหรับคำย่อ เมื่อขยายรูปแบบหรือการทำให้เกิดเสียง การขยายทั้งสองพาเนลของ splitcontainer ก็เปลี่ยนไปเช่นกัน อย่างไรก็ตาม เราสามารถแก้ไขความกว้างคงที่สำหรับแผงหนึ่งได้ (ด้วยการวางแนวตั้งของตัวแยกสัญญาณ) หรือความสูง (ด้วยการวางแนวแนวนอนของตัวแยกสัญญาณ) ซึ่งเราต้องตั้งค่าพลังขององค์ประกอบ SplitContainer เป็น FixedPanel เนื่องจากความหมายของแผงถูกเติมเต็ม จึงจำเป็นต้องแก้ไข:

    ในการเปลี่ยนตำแหน่งของตัวแยกในโค้ด เราสามารถใช้พาวเวอร์ SplitterDistance เพื่อกำหนดตำแหน่งของตัวแยกสัญญาณเป็นพิกเซลจากขอบด้านซ้ายหรือบนของ SplitContainer และสำหรับพลังเพิ่มเติมของ SplitterIncrement คุณสามารถตั้งค่าโครเชต์ที่ตัวแยกจะเคลื่อนที่เป็นเวลาหนึ่งชั่วโมงครึ่งสำหรับปุ่มลูกศรเพิ่มเติม

    ในการแนบพาเนลแบบใดแบบหนึ่งจากสองพาเนล เราสามารถตั้งค่าพลังของ Panel1Collapsed หรือ Panel2Collapsed ให้เป็นจริง

  • https://metanit.com/sharp/windowsforms/4.1.php

    Elementi keruvannya

    องค์ประกอบของการควบคุมคลาสการมองเห็น ซึ่งสามารถใช้เพื่อควบคุมการป้อนข้อมูลและมีอิทธิพลต่อส่วนย่อยต่างๆ องค์ประกอบการควบคุมทั้งหมดกำลังลดลงไปยังคลาสการควบคุม ดังนั้นจึงอาจมีพลังงานต่ำ:

    • สมอ: บ่งบอกว่าองค์ประกอบถูกดึงอย่างไร
    • BackColor: ตั้งค่าสีพื้นหลังขององค์ประกอบ
    • ภาพพื้นหลัง: แสดงภาพพื้นหลังขององค์ประกอบ
    • ContextMenu: ไม่ใช่เมนูบริบท ดังที่แสดงเมื่อปุ่มเมาส์ขวาคลิกที่องค์ประกอบ ขอความช่วยเหลือจากองค์ประกอบ ContextMenu
    • เคอร์เซอร์: ระบุวิธีที่เคอร์เซอร์ของเมาส์ปรากฏเมื่อวางเมาส์เหนือองค์ประกอบ
    • Dock: ตั้งค่าเลย์เอาต์ขององค์ประกอบในแบบฟอร์ม
    • เปิดใช้งาน: ระบุว่าองค์ประกอบจะพร้อมใช้งานสำหรับวิกิหรือไม่ หากค่าเป็นเท็จ องค์ประกอบจะถูกบล็อก
    • แบบอักษร: ตั้งค่าแบบอักษรสำหรับข้อความสำหรับองค์ประกอบ
    • ForeColor: กำหนดสีของฟอนต์
    • ตำแหน่ง: แสดงพิกัดของมุมบนซ้ายขององค์ประกอบหลัก
    • ชื่อ : อิมยะ อิเลเมนต์ เกรุวันยา
    • ขนาด: แสดงขนาดองค์ประกอบ
    • ความกว้าง: ความกว้างขององค์ประกอบ
    • ความสูง: ความสูงขององค์ประกอบ
    • TabIndex: ระบุลำดับที่จะข้ามองค์ประกอบโดยการกดแป้น Tab
    • แท็ก: ช่วยให้คุณบันทึกค่าที่เกี่ยวข้องกับองค์ประกอบการควบคุมนี้
    ปุ่ม
    องค์ประกอบควบคุมที่พบบ่อยที่สุดคือปุ่ม Oroblyayuchi ภายใต้แรงกดดันของปุ่ม เราสามารถทำงานได้ chi іnshіdіїเหล่านั้น

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

    โมฆะส่วนตัว button1_Click (ผู้ส่งอ็อบเจ็กต์ EventArgs e)
    {
    MessageBox.Show("สวัสดีชาวโลก");
    }
    ตกแต่งปุ่ม
    สำหรับการหวงแหนzvnіshnіshnіshnіshnіshnіmіbrannyamของปุ่มคุณสามารถชนะพลัง สไตล์แบน. คุณสามารถใช้ความหมายต่อไปนี้:

    • แบน - ปุ่มอาจดูแบน
    • ป๊อปอัป - ปุ่มจะดูใหญ่เมื่อวางเมาส์ไว้เหนือปุ่ม หรือดูเรียบๆ
    • มาตรฐาน - ปุ่มสำหรับการมองเห็นสูงสุด (สำหรับการล็อค)
    • ระบบ - ประเภทของปุ่มที่จะฝากในระบบปฏิบัติการ
    รูปภาพบนปุ่ม
    สำหรับองค์ประกอบที่หลากหลายของปุ่ม สำหรับปุ่มนั้น คุณสามารถตั้งค่ารูปภาพสำหรับ BackgroundImage ได้ อย่างไรก็ตาม เรายังเปลี่ยนตำแหน่งของข้อความและรูปภาพบนปุ่มได้ ที่ต้องการเอาชนะพลังของ TextImageRelation Vono nabuvaєความหมายขั้นสูง:
    • โอเวอร์เลย์: ข้อความถูกซ้อนทับบนรูปภาพ
    • ImageAboveText: รูปภาพด้านบนข้อความ
    • TextAboveImage: ข้อความเหนือภาพ
    • ImageBeforeText: รูปภาพก่อนข้อความ
    • TextBeforeImage: ข้อความถูกวางไว้ก่อนภาพ
    ตัวอย่างเช่น สำหรับปุ่มรูปภาพ เราเลือกปุ่มใดปุ่มหนึ่งและกำลังกดบนฟิลด์รูปภาพ (อย่าหลงทางจาก BackgroundImage) เราจะนำเสนอด้วยกล่องโต้ตอบสำหรับรูปภาพที่จะแทรก:

    เลือกตัวเลือก Local Resource แล้วคลิกปุ่มนำเข้า หลังจากนั้นเราจะเห็นกล่องโต้ตอบสำหรับเลือกไฟล์รูปภาพ

    หากคุณเลือกรูปภาพ เราสามารถตั้งค่าพาวเวอร์ ImageAlign โดยคำนึงถึงตำแหน่งของรูปภาพบนปุ่ม:

    เรามี 9 ตัวเลือกสำหรับความช่วยเหลือ ซึ่งเราสามารถแนบรูปภาพที่ด้านเพลงของปุ่มได้ ทิ้งความหมายไว้เบื้องหลังการล็อกไว้ที่นี่ - MiddleCenter ซึ่งอยู่ตรงกลาง

    จากนั้น มาดูพลังของ TextImageRelation ซึ่งตั้งค่าเป็น ImageBeforeText ใหม่ ที่ผลลัพธ์ เราจะนำปุ่มออก โดยทันทีหลังจากที่ภาพเขียนบนปุ่ม:

    กุญแจ การเข้าถึงภาษาสวีเดน
    เมื่อทำงานกับแบบฟอร์ม แป้นพิมพ์จะถูกกดด้วยตนเองด้วยปุ่มลัด เมื่อกดบนแป้นพิมพ์จะเรียกการรวมกันระหว่างปุ่ม At + อักขระตัวเดียวกัน ปุ่มเดียวกันจะถูกเรียก ตัวอย่างเช่น ตั้งค่าพลังของข้อความสำหรับปุ่มปัจจุบัน ซึ่งเหมาะสำหรับ &อวาตาร์ เครื่องหมายแรก - เครื่องหมาย - หมายถึงจดหมายนั้น ราวกับว่าคุณจะถูกยกขึ้น ที่ tsomu vipadku เขียนว่า bude ดูเหมือนอวตาร ตอนนี้ฉัน โพเดียม คลิกก็เพียงพอแล้วที่เราจะคลิกที่ Alt + A คีย์ผสม

    ปุ่มล็อค
    แบบฟอร์มซึ่งมีองค์ประกอบควบคุมทั้งหมดอยู่นั้น มีอำนาจในการจดจำปุ่มว่าเป็นล็อค ซึ่งคลิกปุ่มนั้น

    ตัวอย่างเช่น พลังของแบบฟอร์ม AcceptButton ช่วยให้คุณจดจำปุ่มมาตรฐานเพื่อจัดการกับการกดปุ่ม Enter

    ในทำนองเดียวกัน พลังของแบบฟอร์ม CancelButton ถูกใช้ เนื่องจากกำหนดปุ่มสัมผัส เมื่อกำหนดปุ่มดังกล่าวแล้ว เราสามารถคลิกได้โดยกดปุ่ม Esc

  • https://metanit.com/sharp/windowsforms/4.2.php

    ฉลาก
    หากต้องการแสดงข้อความอย่างง่ายในแบบฟอร์ม ซึ่งเข้าถึงได้เฉพาะการอ่าน ให้ใช้องค์ประกอบป้ายกำกับ ในการตั้งค่าข้อความป้ายกำกับ คุณต้องตั้งค่าพลังขององค์ประกอบข้อความ

    ป้ายลิงค์
    ป้ายประเภทพิเศษแสดงโดยองค์ประกอบ LinkLabel ซึ่งกำหนดไว้สำหรับแสดงข้อความ คล้ายกับข้อความที่วางอยู่บนหน้าเว็บมาตรฐาน

    • พลังของ ActiveLinkColor กำหนดสีของแรงเมื่อกด
    • พลังของ LinkColor กำหนดสีของความแข็งแกร่งก่อนการโจมตีซึ่งยังไม่มีการเปลี่ยน
    • พลังของ VisitedLinkColor กำหนดสีของข้อความ ซึ่งเป็นการเปลี่ยนแปลงอยู่แล้ว
    เราสามารถตั้งค่าพลังของ LinkBehavior สำหรับองค์ประกอบที่กำหนดเพื่อระบุพลังของ LinkBehavior ตามกฎพฤติกรรมของคำขอ พลัง Tsya ได้รับความหมายที่เป็นไปได้:
    • SystemDefault: มีการติดตั้งการตั้งค่าระบบเพื่อบังคับใช้
    • ขีดเส้นใต้เสมอ
    • HoverUnderline: ข้อความจะปรากฏเฉพาะเมื่อวางเมาส์ไว้เหนือ
    • ไม่เคยขีดเส้น
    อย่างไรก็ตาม ข้อความทั้งหมดในองค์ประกอบนี้ได้รับการเคารพจากเจ้าหน้าที่ อย่างไรก็ตาม สำหรับพลังเพิ่มเติมของ LinkArea เราสามารถเปลี่ยนพื้นที่ของลิงค์ได้ ตัวอย่างเช่น เราไม่ต้องการรวมอักขระหกตัวแรก สำหรับผู้ที่เรากำหนดข้อกำหนดเริ่มต้น:

    เพื่อที่จะทำให้เกิดการเปลี่ยนแปลงโดยแรงกดทับ จำเป็นต้องเขียนโค้ดเพิ่มเติม รหัสนี้รับผิดชอบในการประมวลผลย่อย LinkClicked เนื่องจากองค์ประกอบ LinkLabel สามารถเป็นได้ ตัวอย่างเช่น ขอให้มีในรูปแบบขององค์ประกอบของแรงซึ่งเรียกว่า linkLabel1 และเพื่อล้างแค้นกำลัง:

    ชั้นเรียนบางส่วนสาธารณะ Form1: Form
    {
    แบบฟอร์มสาธารณะ1()
    {
    InitializeComponent();
    // ตั้งค่า pod_orobnik
    linkLabel1.LinkClicked += linkLabel1_LinkClicked;
    }

    โมฆะส่วนตัว linkLabel1_LinkClicked (ผู้ส่งวัตถุ, LinkLabelLinkClickedEventArgs e)
    {
    System.Diagnostics.Process.Start("http://metanit.com");
    }
    }
    เว็บเบราว์เซอร์ร้องขอเมธอด System.Diagnostics.Process.Start() ซึ่งติดตั้งในระบบโดยเบราว์เซอร์ที่อยู่เบื้องหลังโปรโมชัน

  • https://metanit.com/sharp/windowsforms/4.3.php

    กล่องข้อความ

    สำหรับการแนะนำและการแก้ไขข้อความ จะมีการกำหนดช่องข้อความ - องค์ประกอบกล่องข้อความ เช่นเดียวกับองค์ประกอบป้ายกำกับ ข้อความขององค์ประกอบกล่องข้อความสามารถแทรกหรือนำไปใช้เพื่อเพิ่มอำนาจข้อความได้

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

    นอกจากนี้ คุณสามารถทำให้ฟิลด์ข้อความเลื่อนโดยการตั้งค่า ScrollBars เป็นค่าใดค่าหนึ่งต่อไปนี้:

    • ไม่มี: ไม่มีการเลื่อน (ไม่มีการเลื่อน)
    • แนวนอน: สร้างการเลื่อนแนวนอนเมื่อแถวเต็ม ซึ่งจะเลื่อนความกว้างของช่องข้อความ
    • แนวตั้ง: สร้างการเลื่อนแนวตั้งเพื่อไม่ให้แถวซ้อนในช่องข้อความ
    • ทั้งสอง: เลื่อนในแนวตั้งและแนวนอน

    ช่องข้อความเติมข้อความอัตโนมัติ
    องค์ประกอบกล่องข้อความอาจสร้างช่องเติมข้อความอัตโนมัติได้ เพื่อที่เราต้องผูกมัดอำนาจ การทำให้สมบูรณ์อัตโนมัติCustomSourceขององค์ประกอบ TextBox ไปยังคอลเล็กชันเฉพาะซึ่งใช้ฟิลด์ที่กำหนด

    จากนั้นเพิ่มฟิลด์ข้อความลงในแบบฟอร์มและเขียนโค้ดเพื่อแบ่งย่อยในแถวถัดไป:

    ชั้นเรียนบางส่วนสาธารณะ Form1: Form
    {
    แบบฟอร์มสาธารณะ1()
    {
    InitializeComponent();
    แหล่ง AutoCompleteStringCollection = AutoCompleteStringCollection ใหม่ ()
    {
    "โควาลิฟ"
    "อาวานิฟ"
    "เปตริฟ"
    “คูสติฟ”
    };
    textBox1.AutoCompleteCustomSource = แหล่งที่มา;
    textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
    textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
    }
    }

    โหมดเติมข้อความอัตโนมัติ การแสดงกำลังใน AutoCompleteMode อาจมีค่าที่เป็นไปได้สองสามค่า:

    • ไม่มี: อนุญาตให้เติมข้อความอัตโนมัติ
    • Suggest: แนะนำตัวเลือกสำหรับการแนะนำตัว แต่ไม่เพิ่ม
    • ผนวก: ผนวกค่าเข้ากับแถวในรายการ แต่อย่าผ่านตัวเลือกการเลือก
    • SuggestAppend: หนึ่งชั่วโมงและแนะนำตัวเลือกสำหรับการเติมข้อความอัตโนมัติที่เพิ่มค่าที่คุณป้อน
    คำแปล
    เพื่อให้ข้อความในองค์ประกอบกล่องข้อความปิดท้ายคำ คุณต้องตั้งค่าอำนาจ ตัดคำเท่ากับจริง เพื่อให้คำเดียวไม่เข้าแถว แต่ถูกถ่ายโอนไปยังที่น่ารังเกียจ พลัง Tsya bude pratsyuvati less สำหรับช่องข้อความที่แตกต่างกัน

    ป้อนรหัสผ่าน
    นอกจากนี้ องค์ประกอบนี้ยังมีอำนาจให้คุณป้อนฟิลด์ใหม่เพื่อป้อนรหัสผ่านได้ ดังนั้น คุณต้องแฮ็ค PasswordChar และ UseSystemPasswordChar

    พลังของ PasswordChar ไม่สามารถล็อกได้ ดังนั้นหากเราตั้งค่าเป็นอักขระใดๆ อักขระนั้นจะแสดงขึ้นเมื่อป้อนอักขระใดๆ ลงในช่องข้อความ

    พลังของ UseSystemPasswordChar สามารถควบคุมได้ หากเราตั้งค่านี้เป็นจริง แทนที่จะเป็นอักขระที่ป้อนในช่องข้อความ เครื่องหมายของรหัสผ่านจะแสดงขึ้น ยอมรับในระบบ เช่น จุด

    Podiya TextChanged
    ควรตั้งค่าย่อยสุดท้ายขององค์ประกอบกล่องข้อความเป็นย่อย TextChanged ซึ่งใช้เมื่อเปลี่ยนข้อความขององค์ประกอบ ตัวอย่างเช่น มาเปลี่ยนป้ายกำกับบนรูปร่างของช่องข้อความ Crim เพื่อที่ว่าเมื่อคุณเปลี่ยนข้อความในช่องข้อความ คุณจะเปลี่ยนข้อความบนป้ายกำกับด้วย:

    ชั้นเรียนบางส่วนสาธารณะ Form1: Form
    {
    แบบฟอร์มสาธารณะ1()
    {
    InitializeComponent();

    TextBox1.TextChanged += textBox1_TextChanged;
    }

    โมฆะส่วนตัว textBox1_TextChanged (ผู้ส่งวัตถุ EventArgs e)
    {
    label1.Text = textBox1.Text;
    }
    }

  • https://metanit.com/sharp/windowsforms/4.4.php

    องค์ประกอบ MaskedTextBox

    องค์ประกอบ MaskedTextBox แสดงถึงกล่องข้อความปกติอย่างแท้จริง อย่างไรก็ตาม องค์ประกอบนี้ช่วยให้คุณควบคุมการแนะนำ koristuvach และตรวจสอบอีกครั้งโดยอัตโนมัติสำหรับการให้อภัย

    ในการควบคุมอักขระที่ป้อนลงในฟิลด์ คุณต้องตั้งค่ามาสก์ ในการสร้างหน้ากาก คุณสามารถบิดสัญลักษณ์ต่อไปนี้:

    • 0: อนุญาตให้ป้อนหมายเลขเพิ่มเติม
    • 9: อนุญาตให้คุณป้อนตัวเลขและความน่าจะเป็น
    • #: ให้คุณป้อนตัวเลข ปัญหาและเครื่องหมาย "+" และ "-"
    • L: อนุญาตให้คุณป้อนอักขระตามตัวอักษรเพิ่มเติม
    • ?: อนุญาตให้คุณป้อนอักขระตามตัวอักษรที่ไม่ใช่ภาษาหรือไม่ก็ได้
    • A: อนุญาตให้คุณป้อนตัวอักษรและตัวเลข
    • .: กำหนดตำแหน่งของตัวแยกส่วนทั้งหมดและส่วนช็อต
    • ,: ชัยชนะสำหรับแถวย่อยที่ส่วนทั้งหมดของจำนวน
    • :: Vikoristovuetsya ในช่วงเวลารายชั่วโมง - แยกปี hvilini ที่สอง
    • /: ชัยชนะสำหรับวันที่ย่อย
    • $: ขยิบตาเป็นสัญลักษณ์สกุลเงิน
    ในการตั้งค่ามาสก์ คุณต้องตั้งค่าพลังขององค์ประกอบมาสก์ เมื่อรู้ถึงพลังของ Porperties เราจะกดอันใหม่และจินตนาการถึงการตั้งค่าหนึ่งในเทมเพลตมาสก์มาตรฐาน ดังนั้นเราจึงสามารถเลือกหมายเลขโทรศัพท์ซึ่งเหมือนกับการป้อนข้อมูลในกล่องข้อความแทนหมายเลขโทรศัพท์:

    เมื่อเริ่มต้นเราสามารถป้อนมากกว่าตัวเลขในช่องข้อความโดยปล่อยให้หมายเลขโทรศัพท์

    ตอนนี้มาสวมหน้ากากของเรากันเถอะ ตัวอย่างเช่น มาสร้างหน้ากากสำหรับป้อนชื่อย่อของชื่อตามชื่อพ่อและชื่อชายชราในช่องข้อความ คุณคิดว่าพลังของ Mask หมายถึง L.L.L ?????????. จากนั้นรายการในช่องข้อความจะมีลักษณะดังนี้:

    องค์ประกอบนี้ยังแสดงถึงอำนาจหน้าที่หลายประการ ซึ่งสามารถใช้เพื่อควบคุมการแนะนำตัว ดังนั้นพลังของ BeepOnError เมื่อตั้งค่าเป็น true ให้ เสียงบี๊บ p_d ชั่วโมงของการป้อนอักขระที่ไม่ถูกต้อง

    พลังของ HidePromptOnLeave เมื่อตั้งค่าเป็นจริงเมื่อป้อนฟิลด์ข้อความมีการตั้งค่าโฟกัสเป็น PromptChar

    พลังของ PromptChar ระบุอักขระที่ปรากฏในช่องว่างอักขระป้อนเข้า ด้านหลังปราสาทมีสัญญาณของความมั่นใจ

    พาวเวอร์ AsciiOnly ที่ตั้งค่าเป็นจริง อนุญาตให้คุณป้อนเฉพาะอักขระ asci เช่น อักขระในช่วง A-Z และ a-z

  • https://metanit.com/sharp/windowsforms/4.5.php

    องค์ประกอบปุ่มเรดิโอและช่องทำเครื่องหมาย

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

    ขีด จำกัด อำนาจที่ตรวจสอบแล้วสำหรับองค์ประกอบ CheckBox - สิทธิ์ CheckState ซึ่งอนุญาตให้คุณตั้งค่าหนึ่งในสามสถานะสำหรับธง - ตรวจสอบแล้ว (ค่า) ไม่แน่นอน (ธงที่ไม่ได้กำหนด - บันทึกไว้หรืออยู่ในสถานะไม่ทำงาน) และไม่ได้ตรวจสอบ ( ไม่ระบุ)

    ตั้งค่าอำนาจของ AutoCheck ด้วย - หากอาจเป็นเท็จ เราไม่สามารถเปลี่ยนธงได้ เบื้องหลังการโปรโมทอาจเป็นจริงก็ได้

    ในช่วงเวลาของการเปลี่ยนแปลง ฉันจะกลายเป็นสัดส่วนของไวน์และสร้างโดเมนย่อย CheckedChanged Obroblyayu tsyu podіyu เราสามารถกำจัดการเปลี่ยนแปลงธงและ robiti sevni dії:

    โมฆะส่วนตัว checkBox_CheckedChanged (ผู้ส่งวัตถุ EventArgs e)
    {
    ช่องทำเครื่องหมายช่องทำเครื่องหมาย = (ช่องทำเครื่องหมาย) ผู้ส่ง; // เลื่อนเส้นบอกแนวไปยังองค์ประกอบประเภทช่องทำเครื่องหมาย
    ถ้า (checkBox.Checked == จริง)
    {
    MessageBox.Show("Ensign" + ช่องทำเครื่องหมายข้อความ + "ตั้งค่าทันที");
    }
    อื่น
    {
    MessageBox.Show("Ensign" + checkBox.Text + "ไม่มีค่าในขณะนี้");
    }
    }
    ปุ่มวิทยุ
    บนองค์ประกอบ CheckBox มีองค์ประกอบ RadioButton หรือจัมเปอร์ที่คล้ายกัน สวิตช์ถูกจัดเรียงเป็นกลุ่ม และการรวมสวิตช์หนึ่งตัวหมายถึงการรวมการตัดสินใจ

    ในการติดตั้งช็อตที่จัมเปอร์ คุณต้องใช้พลังงาน Checked true

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

    ในอันดับที่ใกล้เคียงกัน เราสามารถเปลี่ยนแปลงการเรียงสับเปลี่ยนในกลุ่ม โดยกำหนดส่วนย่อย CheckedChanged โดยการเชื่อมโยงจัมเปอร์หนังของกลุ่มกับตัวอย่างหนึ่งของpodіїนี้ เราสามารถใช้จัมเปอร์นั้น ซึ่งเป็นการโทรในช่วงเวลาที่กำหนด:

    โมฆะส่วนตัว radioButton_CheckedChanged (ผู้ส่งวัตถุ, EventArgs e)
    {
    // เลื่อนไกด์ไปที่องค์ประกอบประเภท RadioButton
    RadioButton radioButton = ผู้ส่ง (RadioButton);
    ถ้า (radioButton.Checked)
    {
    MessageBox.Show("คุณเลือก" + radioButton.Text);
    }
    }

  • https://metanit.com/sharp/windowsforms/4.6.php

    กล่องรายการ

    องค์ประกอบกล่องรายการเป็นเพียงรายการ พลังหลักขององค์ประกอบนี้คือพลังของไอเท็ม เพื่อให้คุณสามารถเลือกองค์ประกอบทั้งหมดในรายการได้

    สามารถเพิ่มองค์ประกอบในรายการได้ทันทีที่เวลาเปิดทำการ ดังนั้น i โดยทางโปรแกรม. ใน Visual Studio ที่ Properties (Power) ขององค์ประกอบ ListBox เราสามารถทราบพลังของ Items หลังจากรถไฟใต้ดินกระทบกัน เราเห็นมันในหน้าต่างเพื่อเพิ่มองค์ประกอบในรายการ:

    สำหรับฟิลด์ว่าง หนึ่งองค์ประกอบของรายการจะถูกป้อน - หนึ่งรายการต่อแถวสกิน หลังจากนั้น องค์ประกอบทั้งหมดที่เราเพิ่มจะอยู่ในรายการ และเราสามารถจัดการได้:

    การเลือกรายการจาก ListBox . โดยทางโปรแกรม
    การเพิ่มองค์ประกอบ
    Otzhe องค์ประกอบทั้งหมดของรายการรวมอยู่ในพลังของไอเท็มเป็นคอลเลกชัน หากต้องการเพิ่มรายการใหม่ลงในคอลเล็กชัน เช่น ในรายการ คุณต้องเลือกวิธีเพิ่ม เช่น listBox1.Items.Add("รายการใหม่"); ด้วยความช่วยเหลือของวิธีนี้ องค์ประกอบของสกินซึ่งถูกเพิ่มเข้ามา จะถูกเพิ่มไปยังส่วนท้ายของรายการ

    คุณสามารถเพิ่มองค์ประกอบต่างๆ เช่น อาร์เรย์ ซึ่งใช้วิธี AddRange:

    ประเทศสตริง = ("บราซิล", "อาร์เจนตินา", "ชิลี", "อุรุกวัย", "โคลอมเบีย");
    listBox1.Items.AddRange(ประเทศ);
    การแทรกองค์ประกอบ
    ในมุมมองของการเพิ่มอย่างง่าย การแทรกจะถูกวางไว้หลังจากดัชนีแรกของรายการหลังจากวิธีการช่วยเหลือ แทรก:

    ListBox1.Items.Insert(1, "ปารากวัย");
    ในมุมมองนี้ เราแทรกองค์ประกอบที่ตำแหน่งอื่นในรายการ เพื่อให้ตำแหน่งที่กำหนดเริ่มต้นจากศูนย์

    มุมมองขององค์ประกอบ
    ในการลบองค์ประกอบที่อยู่เบื้องหลังข้อความ ใช้วิธี Remove:

    ListBox1.Items.Remove("ตัวเลข");
    ในการลบองค์ประกอบที่อยู่เบื้องหลังดัชนีในรายการ ใช้วิธี RemoveAt:

    ListBox1.Items.RemoveAt(1);
    นอกจากนี้ คุณสามารถล้างรายการทั้งหมดได้ในครั้งเดียวโดยเรียกวิธีการล้าง:

    ListBox1.Items.Clear(); รายการ
    เข้าถึงองค์ประกอบของรายการ
    ดัชนีองค์ประกอบ Vykoristovuyuchi คุณสามารถองค์ประกอบในรายการ ตัวอย่างเช่น ใช้องค์ประกอบแรกของรายการ:

    สตริง firstElement=listBox1.Items;
    วิธี Count ช่วยให้คุณสามารถกำหนดจำนวนองค์ประกอบในรายการ:

    จำนวน Int = listBox1.Items.Count();
    ดูรายการในรายการ
    เมื่อเห็นองค์ประกอบของรายการ เราสามารถจัดการได้ทั้งผ่านดัชนีและผ่านองค์ประกอบที่เห็น คุณสามารถดูองค์ประกอบด้วยความช่วยเหลือของพาวเวอร์ดังกล่าวขององค์ประกอบกล่องรายการ:

    • SelectedIndex: หมุนหรือแทรกหมายเลขของรายการที่เห็น วิธีดูองค์ประกอบของวันพลังเดียวกันอาจมีค่า -1
    • SelectedIndices: หมุนหรือตั้งค่าคอลเลกชันขององค์ประกอบที่มองเห็นได้เป็นชุดดัชนีที่เลือก
    • รายการที่เลือก: หมุนหรือแทรกข้อความของรายการที่เห็น
    • SelectedItems: หมุนหรือแทรกรายการที่มองเห็นได้ในคอลเลกชันที่เลือก
    เพื่อเป็นการเตือนความจำ รายการสนับสนุนการมองเห็นองค์ประกอบหนึ่ง เพื่อเพิ่มความสามารถในการดูองค์ประกอบบางอย่าง จำเป็นต้องตั้งค่า SelectionMode เป็น MultiSimple ใน SelectionMode power

    หากต้องการดูองค์ประกอบโดยทางโปรแกรม ให้เรียกใช้เมธอด SetSelected (ดัชนี int, ค่าบูล) โดยที่ดัชนีคือหมายเลขขององค์ประกอบที่เห็น หากพารามิเตอร์อื่น - ค่าสามารถเป็นจริงได้ องค์ประกอบที่อยู่เบื้องหลังดัชนีที่ระบุจะมองเห็นได้ หากเป็นค่าเท็จ การแสดงภาพจะได้รับทันที:

    ListBox1.SetSelected(2, จริง); // จะเห็นองค์ประกอบที่สาม
    ในการจับภาพมุมมองขององค์ประกอบที่เลือก จะใช้วิธี ClearSelected

    Podiya SelectedIndexChanged
    องค์ประกอบกล่องรายการต้องมีกล่องรายการก่อนรายการย่อย SelectedIndexChanged ซึ่งเป็นผลมาจากการเปลี่ยนแปลงรายการที่เห็น:

    ชั้นเรียนบางส่วนสาธารณะ Form1: Form
    {
    แบบฟอร์มสาธารณะ1()
    {
    InitializeComponent();

    ประเทศสตริง = ("บราซิล", "อาร์เจนตินา", "ชิลี", "อุรุกวัย", "โคลอมเบีย");
    listBox1.Items.AddRange(ประเทศ);
    listBox1.SelectedIndexChanged += listBox1_SelectedIndexChanged;
    }

    เป็นโมฆะ listBox1_SelectedIndexChanged (ผู้ส่งวัตถุ EventArgs e)
    {
    สตริงที่เลือกประเทศ = listBox1.SelectedItem.ToString ();
    MessageBox.Show(เลือกประเทศ);
    }
    }
    หากคุณเลือกที่จะเลือกองค์ประกอบ คุณควรตรวจสอบรายการอีกครั้งพร้อมกับองค์ประกอบที่มองเห็นได้

    comboBox1.Items.AddRange(สตริงใหม่ ("อุรุกวัย", "เอกวาดอร์"));
    // เพิ่มหนึ่งองค์ประกอบต่อตำแหน่งเดียว
    comboBox1.Items.Insert(1, "โบลิเวีย");
    เมื่อเพิ่มเมธอด Add/AddRange องค์ประกอบใหม่ทั้งหมดจะอยู่ในรายการ อย่างไรก็ตาม หากเราตั้งค่า ComboBox ให้เป็นพลังงาน Sorted เท่ากับ true การเรียงลำดับจะดำเนินการโดยอัตโนมัติเมื่อเพิ่มเข้าไป

    มุมมองขององค์ประกอบ:

    // เราแสดงผลหนึ่งองค์ประกอบ
    comboBox1.Items.Remove("อาร์เจนตินา");
    // ดูองค์ประกอบหลังดัชนี
    comboBox1.Items.RemoveAt(1);
    // ดูองค์ประกอบทั้งหมด
    comboBox1.Items.Clear();
    เราสามารถนำองค์ประกอบที่อยู่เบื้องหลังดัชนีและทำงานกับมันต่างกันได้ ตัวอย่างเช่น เปลี่ยนโยคะ:

    ComboBox1.Items = "ปารากวัย";
    การปรับแต่งการออกแบบของ ComboBox
    ด้วยความช่วยเหลือของพลังงานต่ำ คุณสามารถปรับแต่งรูปแบบของส่วนประกอบได้ ดังนั้นพลังของ DropDownWidth จะกำหนดความกว้างของรายการดรอปดาวน์ สำหรับการเพิ่มพลังของ DropDownHeight คุณสามารถกำหนดความสูงของรายการได้

    พลังอื่นของ MaxDropDownItems ช่วยให้คุณกำหนดจำนวนรายการที่มองเห็นได้ในรายการ - ตั้งแต่ 1 ถึง 100 สำหรับการล็อค หมายเลขคือ 8

    พลังที่มากขึ้น DropDownStyle กำหนดสไตล์ของ ComboBox คุณสามารถใช้สามความหมายที่เป็นไปได้:

    • ดรอปดาวน์: ชนะในการล็อกดาวน์ เราสามารถป้อนรายการตัวเลือกที่จะปรากฏขึ้นเมื่อคุณป้อนค่าในช่องข้อความหรือโดยการคลิกที่ปุ่มที่มีลูกศรอยู่ทางด้านขวาขององค์ประกอบแล้วเราจะเห็นรายการซึ่งคุณสามารถเลือกได้ ตัวเลือก
    • DropdownList: ในการวางรายการแบบหล่นลง คุณต้องคลิกที่ปุ่มที่มีลูกศรอยู่ทางด้านขวาขององค์ประกอบ
    • เรียบง่าย: ComboBox เป็นกล่องข้อความธรรมดาที่เราสามารถเลื่อนแป้นคีย์บอร์ดขึ้น/ลงเพื่อย้ายไปมาระหว่างรายการต่างๆ

    Podiya SelectedIndexChanged
    ส่วนย่อยที่สำคัญที่สุดสำหรับ ComboBox ก็คือส่วนย่อย SelectedIndexChanged ซึ่งช่วยให้คุณสามารถเลือกรายการจากรายการ:

    ชั้นเรียนบางส่วนสาธารณะ Form1: Form
    {
    แบบฟอร์มสาธารณะ1()
    {
    InitializeComponent();

    ComboBox1.SelectedIndexChanged += comboBox1_SelectedIndexChanged;
    }

    เป็นโมฆะ comboBox1_SelectedIndexChanged (ผู้ส่งวัตถุ, EventArgs e)
    {
    สตริง SelectedState = comboBox1.SelectedItem.ToString();
    MessageBox.Show(เลือกสถานะ);
    }
    }
    ที่นี่เช่นกัน พลังของ SelectedItem จะมอบให้กับองค์ประกอบที่เลือก

  • ตอนนี้ถึงเวลาแล้วที่จะสร้างการเพิ่มที่ยอดเยี่ยมครั้งแรกของเรา
    สิ่งสำคัญที่เห็นในส่วนนี้:
    ภาคผนวกที่กำลังขยายตัวจะเป็นรูปแบบเล็ก ๆ ซึ่งฉันทำซ้ำแนวคิดของโปรแกรมที่คิดค้นขึ้นเมื่อนานมาแล้ว: ในแบบฟอร์มจะมีอาหาร "" เมื่อพยายามชี้เบราว์เซอร์ไปที่ปุ่ม " เจ๋ง!คุณจะติ๊กที่เรา ปุ่มกด " สวัสดีคุณจะไม่ถูกห้อมล้อมไปด้วยสิ่งใด


    การสร้างโปรแกรมนี้เราสามารถดูหลักการสำคัญของการสร้างอาหารเสริมทั้งหมดได้ ค#, และนำทางวิธีการดำเนินการด้วยความช่วยเหลือของพวกเขา ไม่ว่าจะเป็นเป้าหมายเฉพาะถิ่น: ในเวลา - tse ตลกติ๊กตลอดเวลา

    สร้างโครงการใหม่ ติดตั้งโปรแกรมเป็นเทมเพลต แบบฟอร์ม Windowsดังแสดงในข้อ 1:
    1. การสร้างโครงการใหม่
    ตั้งชื่อโครงการ RandWindowและกดปุ่ม ตกลง.

    ทำงาน vikno MS Visual Studioเพื่อล้างแค้นการเริ่มต้นของการสูญเสียเพิ่มเติม (รูปที่ 2)

    2. หน้าต่างเพิ่มเติม
    บนตัวเลขจำนวนเล็กน้อยจะมีเครื่องหมาย:

    1. วิกโน กล่องเครื่องมือ(แผงองค์ประกอบการควบคุม) - องค์ประกอบการควบคุมที่คุณสามารถวางบนแบบฟอร์มที่กำลังสร้าง

    2. วิกโน ตัวสำรวจโซลูชัน(การตัดสินใจของ Oglyadach) - ที่นี่คุณสามารถทำปม: คุณสมบัติ- การปรับโครงการ ลิงค์(Possilannya) - เชื่อมต่อกับโครงการห้องสมุดรวมถึงการสร้างและเชื่อมต่อกับโครงการไฟล์ของรหัสภายนอก (พร้อมนามสกุล) .cs) และเชื่อมต่อกับร่างแบบฟอร์ม (เช่น แบบฟอร์ม1).

    3. วิกโน มุมมองชั้นเรียน(คลาสVіkno) – คุณสามารถดูการสร้างสรรค์ทั้งหมดของคลาสโปรแกรมได้ที่นี่

    4. วิกโน คุณสมบัติ(ความแรง) - เมื่อเลือกว่าจะมีองค์ประกอบของการแกะสลักหรือสร้างแบบฟอร์ม คุณจะสามารถคำนวณพารามิเตอร์ทั้งหมดของวัตถุนี้ รวมทั้งเปลี่ยนค่าที่ตั้งไว้สำหรับการล็อค

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

    การเพิ่มองค์ประกอบใหม่ให้กับแบบฟอร์ม

    หลังจากนั้นก็ใส่ชื่อโครงการ แทรก template ที่ต้องการแล้วกดปุ่ม ตกลง, MS Visual Studioสร้างเฟรมของโปรแกรมหน้าต่างโดยอัตโนมัติ หลังจากนั้นเราสามารถเพิ่มองค์ประกอบหน้าต่างใหม่ได้

    ซึ่งจำเป็นต้องลากองค์ประกอบหน้าต่างที่จำเป็นจากหน้าต่างเครื่องมือ ( กล่องเครื่องมือ).

    viknu ของเราต้องการ 2 องค์ประกอบของช่องป้อนข้อมูลซึ่งจะแสดงพิกัดของการป้อนข้อมูลของเมาส์ซึ่งจะทำให้เราเข้าใจการทำงานของโปรแกรมได้ง่ายขึ้น

    ที่กึ่งกลางของหน้าต่างจะถูกเขียนซึ่งเราสร้างขึ้นเพื่อความช่วยเหลือขององค์ประกอบ ฉลาก.
    ด้านล่างจะเย็บ 2 ปุ่ม

    Trochs ยืดชิ้นงานของ vikna หากกดอันใหม่ด้วยปุ่มขวา คุณจะเห็น เมนูบริบท. มีอันใหม่ให้กดตรงจุดอำนาจ ถ้าคุณสามารถเปลี่ยนพารามิเตอร์ของหน้าต่างได้ คุณก็เปลี่ยนได้ สำหรับ 3 ภาพเล็ก ๆ น้อย ๆ อำนาจที่จำเป็นที่สุด (ตามกฎ):
    รูปที่ 3 ระดับพลังงานต่างๆ ของหน้าต่าง (แบบฟอร์ม) ใน C# .NET
    Troch เพื่อยืดชิ้นงานของหน้าต่างและเพิ่มองค์ประกอบที่จำเป็นทั้งหมด ตัวเล็ก 4 ก็ตบที่หน้าต่าง กล่องเครื่องมือ:

    ที่รัก 4. ลากและวาง Toolbox Width Elements ลงบนรูปร่างที่พับไว้

    ไปหาเจ้าหน้าที่แถว Label1เปลี่ยนข้อความเป็น " คุณจะทำงานเพื่อสร้างแสงสว่างที่ดีที่สุดหรือไม่?". เปลี่ยนประเภทฟอนต์ด้วย ซึ่งคุณรู้สิทธิ์ แบบอักษร(รูปที่ 5).
    5. แบบอักษรอำนาจหน้าที่ขององค์ประกอบฉลาก
    หลังจากที่ตั้งค่าประเภทแบบอักษร ทาโฮมา, ความกว้างของตัวอักษร ตัวหนาและ rozmir เท่ากับ 16 (รูปที่ 6)

    รูปที่ 6 การปรับแบบอักษร
    อนุญาตให้เปลี่ยนข้อความบนปุ่ม พลังผู้พิชิต ข้อความ.

    โปรแกรม vykna ชิ้นงานของ Otriman มีลักษณะดังนี้ (รูปที่ 7)

    รูปที่ 7 รูปร่างหน้าตาประมาณนี้

    ส่วนทางเทคนิคของโปรแกรมหุ่นยนต์

    1. บนหลังมือของฉัน dodamo ตัวอย่างการเคลื่อนไหวของเมาส์และมุมมองที่เป็นจริงของพิกัด xі yการสร้างสรรค์สองครั้งของช่องใส่ข้อมูล
    2. มาสร้างฟังก์ชั่นการกระทบกันที่ปุ่มสกินของเมาส์ (โดยเฉพาะสายรัดของคอริสทูวาค คุณยังสามารถใช้ปุ่มนี้ได้” เจ๋ง!»).
    3. ให้รหัสที่ทำให้หน้าต่างเคลื่อนที่ไปในทิศทางที่ถูกต้อง เพื่อให้เคอร์เซอร์เข้าใกล้ปุ่ม « เจ๋ง!».

    การเคลื่อนไหวที่สำคัญของเมาส์ตามรูปแบบ

    คลิกตามอำเภอใจในส่วนของรูปแบบของโปรแกรมที่ถูกสร้างขึ้น ( ไม่อย่างใดอย่างหนึ่ง)

    ตอนนี้ไปที่พลังของแบบฟอร์มเพื่อขอความช่วยเหลือในการคลิกปุ่มขวาของเมาส์ -> เมนูบริบท อำนาจ.

    ตอนนี้จำเป็นต้องไปที่รายการของ podias ที่เป็นไปได้ yakіสามารถชนะได้อย่างมีชัย สำหรับผู้ที่คลิกที่ปุ่ม " เหตุการณ์"(Podії) ดังแสดงใน 8 เล็กน้อย:
    8. ย้ายไปยังรายการของรายการที่เป็นไปได้
    หาก koristuvach ย้ายเมาส์ไปที่หน้าต่าง ระบบปฏิบัติการส่งความช่วยเหลือไปยังโปรแกรมด้วยพิกัดปัจจุบันของตัวบ่งชี้ เหม็นและต้องการเรา

    หากต้องการจดจำ obrobnik tsієїpodіїให้รู้จักแถว MouseMove(เล็ก 9) หลังจากที่เสียงดังในสนามเป็นมือขวาก็จะให้สำเนามือของเมาส์โดยอัตโนมัติและจะได้รับฟังก์ชัน Form1_MouseMoveที่รหัสของโปรแกรมของเรา
    รูปที่ 9 หลังจากการคลิกขวา MouseMove ที่ถนัดขวาจะปรากฏในแถว และการเปลี่ยนไปใช้โค้ดของฟังก์ชันคอมพิวเตอร์จะถูกสร้างขึ้นโดยอัตโนมัติ
    เพิ่ม 2 แถวในฟังก์ชันนี้เพื่อให้โค้ดมีลักษณะดังนี้

    /*http://website, Anvi*/ private void Form1_MouseMove(object sender, MouseEventArgs e) ( // ย้ายพิกัด X ไปที่แถวและเขียนลงในช่องใส่ textBox1.Text = e.X.ToString(); // move พิกัด Y ไปยังแถวที่เขียนไปยังฟิลด์อินพุต textBox2.Text = e.Y.ToString();
    ฟังก์ชันนี้ซึ่งแปลงการเคลื่อนไหวย่อยของตัวบ่งชี้เมาส์เหนือแบบฟอร์ม กำจัด 2 พารามิเตอร์: Object wdRunner และ Instance to class MouseEventsArgsเพื่อล้างแค้นข้อมูลเกี่ยวกับพิกัดปลายทางของเป้าหมายและหน่วยงานอื่นๆ ในปัจจุบัน

    textBox1і textBox2 ce ตัวอย่างของคลาส กล่องข้อความซึ่งดำเนินการโดยองค์ประกอบช่องใส่ของเรา

    สมาชิกของกรณีเหล่านี้ ข้อความอนุญาตให้คุณแทรกข้อความในฟิลด์เหล่านี้

    ในอันดับนี้ตอนนี้คุณต้องคอมไพล์โปรแกรม ( F5) เมื่อย้ายตัวบ่งชี้ของเมาส์ไปด้านหลังรูปแบบของหน้าต่าง เรายังคงมีพิกัดของตัวบ่งชี้ (อยู่ตรงกลางของแบบฟอร์ม) ซึ่งเปลี่ยนแปลงโดยไม่หยุดชะงัก

    ทีนี้มาดูการเตรียมแบบฟอร์มของเรากัน สำหรับผู้ที่คลิกที่บุ๊คมาร์คพิเศษ (Form1.cs [ตัวสร้าง])ดังแสดงในตัวเล็ก 10:
    10. ข้ามไปที่ตัวสร้างแบบฟอร์ม C #
    สร้างรถไฟใต้ดินคลิกที่ปุ่มแรก: สตูดิโอภาพเพิ่มรหัสสำหรับการประมวลผลของปุ่มโดยอัตโนมัติเมื่อกด

    เพิ่มแถวถัดไปในรหัส:

    /*http://website, Anvi*/ private void button1_Click(object sender, EventArgs e) ( // แสดงข้อความที่มีข้อความ "You're in" MessageBox.Show("You're in!!"); // ยุติแอปพลิเคชัน exit(); )
    ตอนนี้ฉันจะกลับไปที่ตัวสร้างและให้ปุ่มเพื่อนด้วยสำหรับความช่วยเหลือในการคลิกแบบลอยบนมัน

    /*http://website, Anvi*/ private void button2_Click(object sender, EventArgs e) ( // Enter an alert, with the text "We didn't forget your buy" // พารามิเตอร์อื่นคือคำอธิบายของการแจ้งเตือน ข้อความ "Uvaga" // MessageBoxButtons.OK - ประเภทของปุ่มบนแบบฟอร์มการแจ้งเตือน // MessageBoxIcon.Information - ประเภทของการแจ้งเตือน - มาติมาไอคอน "ข้อมูล" และเสียง MessageBox.Show("เราไม่ลังเลใจเกี่ยวกับเรื่องสำคัญของคุณ ขอ ","Uvaga", MessageBoxButtons.OK, MessageBoxIcon ข้อมูล);
    mi trochs ได้ลดความซับซ้อนของโค้ดสำหรับการตรวจสอบรายสัปดาห์ เช่นเดียวกับ bachite เพื่อสาธิตวิธีการทำงาน รายงานเพิ่มเติม พารามิเตอร์หนวดที่ส่งผ่านไปยังฟังก์ชัน แสดงแสดงความคิดเห็นที่รหัสเอาต์พุต

    ตอนนี้เราไม่รู้การเคลื่อนไหวของหน้าต่างในขณะที่เมาส์เข้าใกล้ปุ่มอีกต่อไป เจ๋ง».

    ซึ่ง mi dodamo รหัสสำหรับฟังก์ชัน:

    โมฆะส่วนตัวForm1_MouseMove (ผู้ส่งวัตถุ MouseEventArgs)

    หลักการนั้นง่ายกว่า: โดยคำนึงถึงพิกัดของมือของเมาส์ เราจะเปลี่ยนมัน เพื่อไม่ให้มีกลิ่นเหม็นที่จัตุรัสซึ่งตั้งชื่อปุ่มของเราด้วยระยะขอบเล็กน้อย หากเป็นเช่นนั้น เราจะสร้างทศนิยม 2 ตำแหน่ง ซึ่งจะเป็นชัยชนะในการย้ายหน้าต่าง

    เราสามารถแจ้งให้คุณทราบเกี่ยวกับการชี้เมาส์ไปที่ปุ่ม แต่จะมาพร้อมกับการเบลอที่ระลึกที่ลิงก์ซึ่งกดปุ่ม coristuvach โดยไม่มีแรงกดดันพิเศษเพื่อให้เราวางเคอร์เซอร์ในโซนใกล้กับ ปุ่ม.

    ดังนั้นเราต้องเปล่งเสียง deshcho " คนงาน"Smіnnih, yakіเราจะให้ชัยชนะ

    การสร้างตัวเลขตรง

    ระดับ สุ่มใน ค#єเครื่องกำเนิดหมายเลข pseudovipad - tobto คลาสนี้มีความโดดเด่นสำหรับประเภทของลำดับของตัวเลข ซึ่งสอดคล้องกับเกณฑ์ทางสถิติของ vipadkovnosti

    สุ่ม rnd = สุ่มใหม่ ();

    ที่นี่เราเปล่งตัวอย่างของชั้นเรียน สุ่ม (rnd) เพื่อขอความช่วยเหลือจากหมายเลขvipadkovіดังกล่าว Nadalіเราจะเอาชนะรหัสใจ rnd.ถัดไป(generation_range) หรือ rnd.ถัดไป(จากการ -1 ) เพื่อสร้าง เลขวิพาดิค.

    ดังนั้นเราจะพูดถึงการเปลี่ยนแปลงอีกเล็กน้อย บางส่วนจะเริ่มต้นทันที

    Windows.Forms.SystemInformation.PrimaryMonitorSize.Width; int _h = System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Height;
    tmp_location goloshuetsya ที่ schob ในอนาคต timchasovo บันทึกค่ายของ vikna

    ดังนั้นเราควรนึกถึงผู้ที่ในกรณีของการเลื่อนแนวตั้ง หน้าต่างของเราสามารถไปไกลกว่าขอบของหน้าจอ

    shob กำหนดหน้าจอให้กับ C# .NET , เราจะ vikoristovuvaty:

    /*http://site, Anvi*/ System.Windows.Forms.SystemInformation.PrimaryMonitorSize
    _ชมі _wดูแล koristuvach หน้าจอของคุณเองเนื่องจากถูกเรียกเก็บเงินสำหรับการเริ่มต้น
    ตอนนี้โค้ดสำหรับฟังก์ชันนี้มีลักษณะดังนี้:

    /*http://esate.ru, Anvi*/ โมฆะส่วนตัว Form1_MouseMove(ผู้ส่งวัตถุ, MouseEventArgs e) ( // แปลพิกัด X ในแถวและเขียนลงในช่องป้อนข้อมูล textBox1.Text = e.X.ToString(); / / แปลพิกัด Y ในแถวและเขียนลงในช่องป้อนข้อมูล textBox2.Text = e.Y.ToString(); // ดังนั้นพิกัดตามแกน X และตามแนวแกน Y จะอยู่ในสี่เหลี่ยมจัตุรัส ถ้า ซึ่งมีป้ายกำกับถัดจาก " อย่างน่าอัศจรรย์" ปุ่ม (e.X > 80 && e.X 100 && e.Y (_w - this.Width/2) ||tmp_location.Y(_h - this.Height/2)) บน this.Location = tmp_location;) ที่สร้างขึ้นใหม่ )
    Axis, vlasne และนั่นแหล่ะ หลังจากเสร็จสิ้นโปรแกรมคุณสามารถลองคลิกที่ปุ่ม "น่าทึ่งมาก" Tse จะมีความสำคัญมากขึ้น

    ปรับปรุงล่าสุด: 31.10.2015

    สำหรับการสร้างอินเทอร์เฟซแบบกราฟิกสำหรับแพลตฟอร์ม .NET เพิ่มเติม มีการปรับใช้เทคโนโลยีต่างๆ - Window Forms, WPF, ส่วนเสริมสำหรับ Windows Store (สำหรับ Windows 8/8.1/10) อย่างไรก็ตาม แพลตฟอร์มเอกสารที่ง่ายและสะดวกที่สุดคือ Window Forms หรือ Forms ความช่วยเหลือของเดนมาร์กเป็นข้อมูลเมตาของการทำความเข้าใจหลักการของการสร้างส่วนต่อประสานกราฟิกสำหรับเทคโนโลยี WinForms เพิ่มเติมและการทำงานขององค์ประกอบหลักของการจัดการ

    สร้างโดยซอฟต์แวร์กราฟิก

    ในการสร้างโครงการกราฟิก เราจำเป็นต้องมีสภาพแวดล้อมการพัฒนา Visual Studio เนื่องจากเวอร์ชันของ Visual Studio 2013 เป็นเวอร์ชันที่ขยายได้มากที่สุด ดังนั้นผู้ที่ฉันช่วย ฉันจะเอาชนะเวอร์ชันฟรีของสื่อนี้ Visual Studio Community 2013สามารถหา Yaku ได้ที่ด้านข้าง https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx

    หลังจากติดตั้งมิดเดิลแวร์และส่วนประกอบทั้งหมดแล้ว ให้เปิด Visual Studio และสร้างโปรเจ็กต์โปรแกรมกราฟิก ซึ่งในเมนู ให้เลือกรายการไฟล์ (ไฟล์) และในเมนูย่อย ให้เลือกใหม่ -> โครงการ (สร้าง -> โครงการ) สิ่งสุดท้ายที่เราเห็นต่อหน้าเราคือหน้าต่างโต้ตอบของการสร้างโครงการใหม่:

    ในคอลัมน์ด้านซ้ายเลือก Windows Desktop และในส่วนกลางของประเภทโปรเจ็กต์กลาง - type แอปพลิเคชันแบบฟอร์ม Windowsและสำหรับผู้หญิงฉันเหมือนอยู่ในทุ่งด้านล่าง ตัวอย่างเช่น เราเรียกโยคะ สวัสดีแอพ. สิ่งต่อไปกดตกลง

    หลังจากที่ Visual Studio เปิดโปรเจ็กต์จากไฟล์ที่สร้างขึ้นหลังการล็อก:

    ขอบเขตส่วนใหญ่ของ Visual Studio ถูกครอบครองโดยนักออกแบบกราฟิก ซึ่งสามารถกำหนดรูปแบบโปรแกรมในอนาคตได้ ขณะนี้ว่างเปล่าและไม่มีอะไรมากไปกว่าส่วนหัวของ Form1 ทางด้านขวา คุณจะพบไฟล์โซลูชัน/โครงการ - Solution Explorer คุณจะพบไฟล์ทั้งหมดที่เกี่ยวข้องกับภาคผนวกของเรา รวมถึงไฟล์ในแบบฟอร์ม แบบฟอร์ม1.cs.

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

    ตอนนี้เรารู้ถึงพลังของรูปแบบ Text และเปลี่ยนความหมายของมันเป็นจามรี:

    ด้วยวิธีนี้ เราเปลี่ยนชื่อของแบบฟอร์ม ตอนนี้สามารถโอนย้ายไปยังฟิลด์ได้เป็นองค์ประกอบหลัก ตัวอย่างเช่น ปุ่ม เรารู้จักส่วนซ้ายของแท็บ Visual Studio เพื่อใคร กล่องเครื่องมือ. คลิกที่แท็บนี้แล้วเราจะเห็นแผงที่มีองค์ประกอบ เราสามารถโอนดาวไปยังแบบฟอร์มสำหรับองค์ประกอบอื่น ๆ ได้:

    เรารู้องค์ประกอบตรงกลางของปุ่ม i เมื่อโหลด їїใน kazіvnik ของเมาส์ เราโอนไปยังแบบฟอร์ม:

    Tse เป็นส่วนที่มองเห็นได้ ทีนี้มาดูการเขียนโปรแกรมกัน ให้ฉันเพิ่มรหัสที่ง่ายที่สุดของ C # ของฉันซึ่งเป็นปุ่มเปิดใช้งานและกดปุ่ม สำหรับใครก็ตามที่ฉันมีความผิดให้ไปที่ไฟล์รหัสซึ่งเป็นการเชื่อมต่อจากแบบฟอร์มนี้ เนื่องจากเราไม่มีไฟล์โค้ดให้ดู เราจึงสามารถคลิกบนแบบฟอร์มโดยใช้ปุ่มเมาส์ขวาและในเมนูดูโค้ด (ดูไฟล์โค้ด):

    อย่างไรก็ตาม เราจะเร่งความเร็วในวิธีที่ต่างออกไป เพื่อไม่ให้เขียนโค้ดมากเกินไป เลื่อนตัวชี้เมาส์ไปที่ปุ่มและคลิกที่การคลิกด้านล่าง เราใช้ไฟล์โค้ดโดยอัตโนมัติ แบบฟอร์ม1.csซึ่งมีลักษณะดังนี้:

    การใช้ระบบ ผู้ชนะ System.Collections.Generic; ใช้ System.ComponentModel; ใช้ System.Data; ระบบผู้ชนะ. การวาดภาพ; ใช้ System.Linq; ใช้ System.Text; ผู้ชนะ System.Threading.Tasks; ใช้ System.Windows.Forms; เนมสเปซ HelloApp ( คลาสบางส่วนสาธารณะ Form1: แบบฟอร์ม ( Form1 สาธารณะ () ( InitializeComponent (); ) โมฆะส่วนตัว button1_Click (ผู้ส่งวัตถุ, EventArgs e) ( ) )

    Dodamo แสดงการแจ้งเตือนหลังจากกดปุ่ม โดยเปลี่ยนรหัสด้วยวิธีต่อไปนี้:

    การใช้ระบบ ผู้ชนะ System.Collections.Generic; ใช้ System.ComponentModel; ใช้ System.Data; ระบบผู้ชนะ. การวาดภาพ; ใช้ System.Linq; ใช้ System.Text; ผู้ชนะ System.Threading.Tasks; ใช้ System.Windows.Forms; เนมสเปซ HelloApp ( คลาสบางส่วนสาธารณะ Form1: แบบฟอร์ม ( สาธารณะ Form1() ( InitializeComponent(); ) โมฆะส่วนตัว button1_Click(ผู้ส่งวัตถุ, EventArgs e) ( MessageBox.Show("สวัสดี"); ) ) )

    เปิดตัวโปรแกรม

    ในการรันโปรแกรมในโหมดบูต ให้กดแป้น F5 หรือลูกศรสีเขียวบนแผง Visual Studio ครั้งต่อไปที่แบบฟอร์มของเราเริ่มต้นด้วยปุ่มเอง และหากเรากดปุ่มบนแบบฟอร์ม จะแสดงข้อความเตือนเกี่ยวกับการสูบไอ

    หลังจากเปิดตัวโปรแกรม สตูดิโอจะรวบรวมโยคะจากไฟล์จากนามสกุล exe คุณสามารถค้นหาไฟล์ได้โดยไปที่โฟลเดอร์โปรเจ็กต์และไปที่ไดเร็กทอรี bin/Debug หรือ bin/Release

    เมื่อพิจารณาสั้น ๆ เกี่ยวกับการสร้างส่วนเสริมกราฟิกสำหรับโครงการ เราสามารถไปยังภาพรวมขององค์ประกอบหลักและแน่นอนแบบฟอร์ม

    © 2022 androidas.ru - ทั้งหมดเกี่ยวกับ Android