ใช้สีของโปรแกรมของคุณใน Visual Studio

ตัวอย่างนี้จะเกิดขึ้นจากแบบสอบถามใน บทความนี้ .

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

ป.ร. ให้ไว้ปัญหาที่เกิดขึ้นว่ามีการควบคุมที่แสดงให้เราในรายการนี​​้ของสีที่เราเห็นว่าเราสามารถ constriur หนึ่งตัวเอง

ตัวอย่างเช่นเราต้องการโครงการใหม่และสองรูปแบบ

ในรูปแบบแรกกระบองก็ต้องเรียก 2 แบบดังแสดงในรูปต่อไปนี้:

coloresNombre001

ปุ่มและรหัสเป็นดังนี้:

 BtnColor_Click Private Sub (ผู้ส่ง ByVal เป็น System.Object, ByVal e เป็น System.EventArgs) จัดการ btnColor.Click
 ในฐานะที่เป็น New Form2 Dim vForm2
 vForm2.ShowDialog ()
 ย่อยสิ้นสุด

และในรูปแบบนี้ n botoes ListBox และสองจะ (ยอมรับและยกเลิก) เป็นในรูปแบบดังต่อไปนี้:

coloresNombre002

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

 Form2_Load Private Sub (ผู้ส่ง ByVal เป็น System.Object, ByVal e เป็น System.EventArgs) MyBase.Load จับ
 ListBox1.DrawMode = DrawMode.OwnerDrawFixed
 ListBox1.ItemHeight = 20

 ListBox1.Items.Clear ()
 ListBox1.BeginUpdate ()
 สำหรับปี่เป็น Reflection.PropertyInfo ใน GetType (สี) แต่ละ. GetProperties (หรือ Reflection.BindingFlags.Static Reflection.BindingFlags.Public)
 ListBox1.Items.Add (pi.Name)
 ต่อไป
 ListBox1.EndUpdate ()
 ย่อยสิ้นสุด

ในบรรทัดแรกของ Load "ListBox1.DrawMode = DrawMode.OwnerDrawFixed" สร้างที่องค์ประกอบทั้งหมดของการควบคุมจะถูกดึงด้วยตนเองและมีความสูงเดียวกัน ademçasนี้เหตุการณ์ DrawItem เรียกแสดงเพียงก่อนที่แต่ละรายการ

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

coloresNombre003

และนี่คือรหัสของเหตุการณ์ DrawItem

 ListBox1_DrawItem Private Sub (ผู้ส่ง ByVal เป็นวัตถุอี ByVal, ณ System.Windows.Forms.DrawItemEventArgs) จัดการ ListBox1.DrawItem
 รูปสี่เหลี่ยมผืนผ้ามซำเป็นสี่เหลี่ยมผืนผ้า e.Bounds =

 หาก (e.State และ DrawItemState.Selected) แล้ว
 e.Graphics.FillRectangle (SystemBrushes.Highlight สี่เหลี่ยม)
 อื่น
 e.Graphics.FillRectangle (Brushes.White สี่เหลี่ยม)
 End If

 มซำ As String = ListBox1.Items nombreColor (e.Index)

 มซำข ณ นิ SolidBrush (Color.FromName (nombreColor))

 rectangulo.Inflate (-16, -2)
 e.Graphics.FillRectangle (b, นิสี่เหลี่ยมผืนผ้า (rectangulo.X, rectangulo.Y, 30, rectangulo.Height))

 e.Graphics.DrawRectangle (Pens.Black, นิสี่เหลี่ยมผืนผ้า (rectangulo.X, rectangulo.Y, 30, rectangulo.Height))

 หาก (e.State และ DrawItemState.Selected) แล้ว
 e.Graphics.DrawString (nombreColor, e.Font, Brushes.White, rectangulo.X + 34, rectangulo.Y + 2)
 อื่น
 e.Graphics.DrawString (nombreColor, e.Font, Brushes.Black, rectangulo.X + 34, rectangulo.Y + 2)
 End If
 ย่อยสิ้นสุด

ตอนนี้เราก็ต้องโปรแกรมปุ่ม eventosde ดังแสดงในรหัสต่อไปนี้:

 BtnAceptar_Click Private Sub (ผู้ส่ง ByVal เป็น System.Object, ByVal e เป็น System.EventArgs) จัดการ btnAceptar.Click
 My.Forms.Form1.BackColor = Color.FromName (ListBox1.SelectedItem)
 ย่อยสิ้นสุด

 BtnCancelar_Click Private Sub (ผู้ส่ง ByVal เป็น System.Object, ByVal e เป็น System.EventArgs) จัดการ btnCancelar.Click
 Me.Close ()
 ย่อยสิ้นสุด

ดีในการทดสอบโปรแกรม ... ถ้าทุกอย่างไปจะมีลักษณะดังนี้:

coloresNombre004

ฉันออกข้อกำหนดบาง:

Graphics.FillRectangle (วิธีการ): เติมตกแต่งภายในของรูปสี่เหลี่ยมที่ระบุโดยคู่พิกัดความกว้างและความสูง

Graphics.DrawRectangle (วิธีการ): วาดรูปสี่เหลี่ยมผืนผ้าที่กำหนดโดยคู่พิกัดความกว้างและความสูง

Graphics.DrawString (วิธีการ): วาดสตริงข้อความที่ระบุไว้ในพื้นที่ที่กำหนดและมีวัตถุแปรงที่ระบุไว้และตัวอักษร

หวังนี้จะช่วยและคุณสามารถใช้ในโครงการของคุณ

11 Responses to "ใช้สีของ Visual Studio ในโปรแกรมของคุณ"

  1. Bitacoras.com ข้อมูล ...

    อัตราใน Bitacoras.com: ตัวอย่างนี้เกิดขึ้นจากแบบสอบถามในบทความนี้ การควบคุม ColorDialog tresenta เราจานสีดั้งเดิม แต่ก็เป็นตรุอีที่จากสตูดิโอภาพเป็นมาก nicer และการแสดงสีทั้งหมดของคุณ n .....

  2. Cristyan says:

    ตัวอย่างที่ดีมากขอขอบคุณ

  3. Jose Luis says:

    GREAT!
    เป็นที่ชื่นชมอย่างมาก!

  4. ออสการ์แดเนียลพูดว่า:

    ! ดีมาก!
    สิ่งเดียวที่ฉันทำงานเป็นปุ่มยกเลิก

  5. เอริคพูดว่า:

    ล้มเหลวในการเลือกสีโปร่งใสนั้นจะเป็นอย่างไร ........... สีอื่น ๆ ถ้าทำงาน

    salu2

    • เอลีชา says:

      คือสีโปร่งใสไม่สามารถนำไปใช้เป็นสีพื้นหลังของรูปแบบ แต่ถ้าคุณใช้สำหรับการควบคุมอื่น ๆ

      ขอบคุณสำหรับการแสดงความคิดเห็น!

  6. gercer89 says:

    บันทึกชีวิตของฉันเช่นนี้! ... แต่ที่ผมได้เห็นหน้าจอ prpiedades ที่คุณเปลี่ยนสีได้หรือไม่เพราะมันช่วยให้ฉันเห็น "My.Forms.Form1.BackColor." ขอบคุณ salu2

  7. ดิเอโก says:

    สวัสดี
    ฉันได้รับข้อผิดพลาดที่ระบุว่าคาดว่าจะได้. <ถ้า (e.State และ DrawItemState เลือก เอ็ด) แล้ว
    e.Graphics.FillRectangle (SystemBrushes.Highlight สี่เหลี่ยม)

    ช่วยเมนโดยเอฟเอ
    Graciass

  8. เฮนรี่พูดว่า:

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

  9. ดาวิดพูดว่า:

    VERA นี้ขอบคุณมากเช่นนี้ ฉันจะสามารถที่จะใช้มันเพื่อความต้องการของฉัน

    ขอบคุณจากเมริดา, ยูกาตัง

ความเห็น