Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > C# WinApp อยากทราบขั้นตอนการทำงานของ control ครับ



 

C# WinApp อยากทราบขั้นตอนการทำงานของ control ครับ

 



Topic : 126139



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook



คิดศัพท์ทางโปรแกรมเมอรไม่ออกนะครับแต่ผมอยากรู้ประมาณนี้ครับ
ผมขอยกตัวอย่างการสร้าง UserControl จาก textbox นะครับ

1. ถ้าเราสร้าง UserControl ขึ้นมา แล้วเราลากลงใน form ตรงนี้ เกิด event ใดบ้าง
2. การที่เราเริ่ม run appplcation UserControl เกิด event ใดบ้าง
3. UserControl ทุกตัวจะมี event คล้ายๆกันไม๊ใน้ ข้อ 1 2
4. ถ้าเราต้องการให้ UserControl ของเราทำอะไรซักอย่างตอน เริ่ม run appplcation อย่างเช่นเปลี่ยนสี จะต้องใช้ event ไหนเขียนยังครับ


พอดีเขียนไปเขียนมาเริ่มงงๆกับ event ครับ
ผมกำลังบังคับตัวเองไม่ให้ไปหนักที่ form แต่ให้ลงใน UserControl ประมาณนี้ครับ



Tag : .NET, Win (Windows App), C#, VS 2012 (.NET 4.x), Windows







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-01-24 10:20:23 By : lamaka.tor View : 1743 Reply : 11
 

 

No. 1

Guest


แน่ใจนะว่าไม่ได้หนักที่ Form ครับผม การที่เราทำ UserControl นั้น(ส่วนตัวนะ)
1 ทำซ้ำๆ
2 ใช้เหมือนๆกัน
3 ไม่แก้ไข Control เดิม ยกเว้นของเดิมมันไม่สวย
4 ของเดิมไม่มีสิ่งที่ต้องการ

กรณีของคุณ tor นั้นผมไม่รู้ว่าทำไหมต้องการเขียนเป็น UserControl ทีแรกคิดว่าคุณจะเขียนขาย
การเขียน user control ด้วยการเอาของเดิมมาแก้ไขมันก็ไม่ต่างจากซื้อรถมาแต่งสวยตามความต้องการครับ
อย่างไง อาจจะช้าตอนรันด้วยซ้ำมั้งครับ
แต่อย่างไงผมก็อยากให้คุณ tor มุ่งมั่นมาทางนี้นะครับ 555 ข้าน้อยภาษาไม่เก่งก็เลยเขียนเท่าที่มันมีมาให้
ขี่เกียดศึกษาหรือไม่ถ้าอยากได้สวยๆก็ซื้อเอา เอาเวลาไปปลูกผักดีกว่าครับผม (อ่านข้อ 1-4 ก่อน)

หรือไม่รออาจารย์หน้าฮีน่าจะมีคำตอบครับ เรียกอาจารย์เลยแล้วกันคิดว่าท่านน่าจะแนะนำคุณได้ครับ(ผมว่า ผมน่าจะโดนท่านเล่นแน่ๆ 555)
หรือไม่อีก ไปนี้เลยครับต้องการ control อะไรเรามีบอก
https://msdn.microsoft.com/en-us/library/system.windows.forms.textbox(v=vs.110).aspx






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-24 10:39:31 By : บัญดิษฐ
 


 

No. 2



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 1 เขียนโดย : บัญดิษฐ เมื่อวันที่ 2017-01-24 10:39:31
รายละเอียดของการตอบ ::
พอดีช่วงนี้ฝึกตนเรื่อง Usercontrol ครับเลยพยายามทำอะไรให้เป็น Usercontrol ที่ผมสร้าง(ถือโอกาศก้าวไปอีกขั้นของการเขียนโปรแกรมครับ)
การที่เราเรียนบางอย่างโดยไม่ผ่านการสอน หรือ อบรม หรือมีคนที่ถนัดจังๆจังๆมาสอนนี่ถือเป็นอุปสรรค นิดๆนะครับ
เหมือนกับบอกจุดหมายให้คนตาบอดเดินไปโดยไมาบอกวิธีการที่ถูกต้อง(มันก็ถึงจุดหมายเหมือนกัน แต่กว่าจะถึงก้เล่นเอาเหนื่อยเหมือนกัน 555)

ตอนนี้ผมโหลด โค้ดของ dotnet451 มาแกะเล่นครับ
กำลังทำพวก ToolStripDateTimePicker จาก ToolStripControlHost
https://www.thaicreate.com/dotnet/forum/126129.html
แต่ก่อนใช้วิธี new ToolStripControlHost(new DateTimePicker ) ใน navigator ครับ(ต้องขอขอบคุณท่านผู้ใจดีแต่ไม่ออกนามที่แนะนำมา)
ต้องเขียนโค้ดลงในฟอร์มซะส่วนใหญ่ แบบนั้นถ้าผมมี navigator ซัก 200 ตอนนี้ก็ 100 กว่าแล้วครับ ก็ต้องมาไล่เขียนจนหมดครับ

แต่ถ้าเราจับมันมาทำเป็น Usercontrol พอยัดลงใน navigator ก็ก๊อบไปวางได้เลยครับ(property ต่างๆก็ไปกันด้วย)
วัตถุประสงค์(ขี้เกัยจ)ประมาณนี้ครับ



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-24 11:23:49 By : lamaka.tor
 

 

No. 3



โพสกระทู้ ( 5 )
บทความ ( 0 )



สถานะออฟไลน์


User Control สำหรับการ นำมาใช้ ซ้ำๆ เพื่อลดการเขียน Code ที่ซ้ำๆครับ

ImageUserControl

สมมุติว่า ต้องมีหลายๆ หน้าที่ต้องการ นำรูปแบบ ตัวอย่างนี้ไปใช้ โดยมี เงือนไข ว่า From , To ต้องใส่เสมอ และ ต้องไม่ ซ้ำกัน
ถ้าเรา ใช้ Control ปกติ ก็ ต้องเขียน Code ทุกหน้าที่ใช้ แต่เมื่อ ใช้ UserControl เราเขียน Code ที่ User Control ครั้งเดียว
เวลานำ UserControl ไปใช้ไม่ต้องเขียน Code ในการตรวจสอบใหม่

มาถึง แล้วเราจะ นำค่า เข้า หรือ ออก จาก UserControl อย่างไร บ้าง
เริ่มจาก ใน UserControl เราต้องเขียน Property Get , Set เพื่อรับข้อมูล เข้า และ ออก

สมมุติ จะรับส่งค่า เข้าไปที่ Trancode (Textbox) สมมุคิชื่อ txtTranCode

Public Property TransferCode() As String
Get
Return txtTranCode.Text.ToString
End Get
Set(ByVal value As String)
txtTranCode.Text = value
End Set
End Property

เมื่อ นำ UserControl ไปใส่ใน หน้าจอ สมมุติ กำหนดชื่อ usrControl1

เมื่อ ต้องการ ใส่ ค่า usrControl1.TranferCode = "Test"
เมื่อต้องการ นำค่าจาก UserControl มาใช้ dim tranValue as string = usrControl1.TranferCode
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-24 11:39:14 By : godedp
 


 

No. 4



โพสกระทู้ ( 821 )
บทความ ( 0 )



สถานะออฟไลน์


เคยเอา control มาแก้
โดยการเพิ่มคำสั่งเข้าไป
เพราะว่านาน ๆ เขียนที แล้วจำ code ไม่ได้

ดังนั้นเลยไม่เคยแก้ event เลย
เท่าที่ทราบก็คือ ถ้าอยากให้อะไรมันทำงานทันที
ก็เอาคำสั่งไปไว้ที่ procedure ที่ชื่อเดียวกันกับ class ครับ
เช่น จะแก้ textbox
Code (C#)
public class txt : System.Windows.Forms.TextBox
	{
         public txt()
		{
                  // ใส่คำสั่งตรงนี้
                }
        }


ผิดถูก ขออภัยน่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-24 13:49:12 By : fonfire
 


 

No. 5



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 4 เขียนโดย : fonfire เมื่อวันที่ 2017-01-24 13:49:12
รายละเอียดของการตอบ ::
คือไม่ได้อยากให้ทำงานทันทีนะครับ

พอดีอยู่ในช่วงศึกษา และ หัดทำพวก usercontrol เล่นครับ

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

อย่างเช่น ถ้าเป็น ฟอร์ม ก็จะมี event load Paint ใช่ไม๊ครับ
นอกจากนี้มีอะไรบ้าง(รึมีแค่นี้)
แล้วทำงานตอนไหนบ้าง
เรียกใช้ยังไง

พอได้ก็จะเอามาลองเล่นดูว่า event ไหนเหมาะกับ control ไหน ตอนไหนควรใช้
ประมาณนี้ครับ


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-24 14:19:05 By : lamaka.tor
 


 

No. 6



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

อีกอย่างที่อยากรู้นะครับ

คือ

ถ้าเราไม่ Inherits ตัว control มา

อย่าง textbox ถ้าเราอยาก เพิ่ม property testvalue
เราก็ต้องเขียนแบบนี้

Code (C#)
public class TorTextbox : TextBox
    {
        public TorTextbox()
        {
 
        }
        [DefaultValue("")]
        public string testvalue { get; set; }
    }


แล้วก็ลากเจ้า TorTextbox ลง ฟอร์มไป
มีไม๊ครับที่เราจะ ยัด public string testvalue { get; set; } เข้าใน control textbox(อาจจะทำ extension ไว้)
พอลากเจ้า Textbox ลง ฟอร์ม ก็จะมี property testvalue
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-24 14:36:59 By : lamaka.tor
 


 

No. 7

Guest


ทำได้ครับ แต่ผมไม่ได้เอาโค้ดมาให้ดูนะครับแต่ให้ดู vdo ที่เขาทำครับ
https://www.youtube.com/watch?v=pd-S6UoQHh8
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-24 14:51:37 By : บัญดิษฐ
 


 

No. 8



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 7 เขียนโดย : บัญดิษฐ เมื่อวันที่ 2017-01-24 14:51:37
รายละเอียดของการตอบ ::
ตาม VDO มันต้อง Inherits control เพื่อเพิ่ม property นะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-24 15:03:22 By : lamaka.tor
 


 

No. 9

Guest


งั้นลองดูตามนี้นะครับ
http://csharphelper.com/blog/2016/12/add-extension-properties-to-classes-in-c/
ไม่แน่ใจตรงกับที่ต้องการหรือเปล่านะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-24 17:04:47 By : บัญดิษฐ
 


 

No. 10



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 9 เขียนโดย : บัญดิษฐ เมื่อวันที่ 2017-01-24 17:04:47
รายละเอียดของการตอบ ::
ทำแบบนี้ก็ได้ด้วยนะครับ
ขอบคุณสำหรับความรู้ใหม่ๆครับ


พูดถึงว่า usercontrol นี่ก็ทำยากเหมือนกันนะครับ(มิน่าเขาถึงขายกันได้)

Code (C#)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.Design;

namespace UserControl_2
{

    //Declare a class that inherits from ToolStripControlHost.
    [ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.ToolStrip | ToolStripItemDesignerAvailability.StatusStrip)]
    public class ToolStripTextBox : ToolStripTextBoxControl
    {
        public ToolStripTextBox() : base(CreateControlInstance()) { }

        public TextBox dateTimePicker
        {
            get
            {
                return Control as TextBox;
            }
        }

        private static Control CreateControlInstance()
        {
            TextBox mtb = new TextBox();
           // mtb.Format = DateTimePickerFormat.Short;
            mtb.MinimumSize = new System.Drawing.Size(100, 16);
            return mtb;
        }
    }

    public class ToolStripTextBoxControl : ToolStripControlHost
    {
        public ToolStripTextBoxControl()
            : base(new Control())
        {
        }
        public ToolStripTextBoxControl(Control c)
            : base(c)
        {
        }
    }


     

}



ลงฟอร์มรันได้ปกติพอปิด แอฟ usercontrol หาไปจาก navigator เสย
แต่ใน โค้ดก็เห็นอยู่นะครับ ไม่รู้ติด layout ตรงไหน(มีใครพอทราบบ้างครับ)
ฤฏฆโฆฎฌโ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-24 17:44:05 By : lamaka.tor
 


 

No. 11



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-25 09:53:28 By : mr.win
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : C# WinApp อยากทราบขั้นตอนการทำงานของ control ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

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

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







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่