Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Utöka (ärva) ComboBox-kontrollen

Postades av 2006-09-21 21:45:58 - Per Hultqvist, i forum visual studio.NET IDE, Tråden har 3 Kommentarer och lästs av 899 personer

Hej,

Jag har funderingar på att göra några förbättringar på ComboBox-kontrollen, bl a tänkte jag implementera en egen ComboItem-klass som innehåller bl a ToolTip på item-nivå e t c.

Min tanke var förstås att ärva från ComboBox-klassen och utöka denna, MEN, hur hanterar (Windows Form) formulärdesignern detta? Kan man få in denna nya klass, SuperComboBox :-), i toolboxen? Annars tappar man ju hela grejen? Jag vill absolut inte koda i blindo, dvs själv i kod skapa en instans av combon, tala om var den skall ligga etc varje gång den skall användas...Den måste synas i formulärdesignern, annars får det vara...

Någon som gjort något liknande?


Svara

Sv: Utöka (ärva) ComboBox-kontrollen

Postades av 2006-09-24 00:26:46 - André Claesson

Ja, det går bra att göra en egen kontroll och få den i toolboxen. Den kommer där automatiskt om du skapar en ny klass, som ärver från ComboBox.
Jag gjorde en egen, som ärvde från ComboBox, och innehöll ikoner etc.


Svara

Sv:Utöka (ärva) ComboBox-kontrollen

Postades av 2006-09-24 01:21:07 - André Claesson

Som hjälp på traven visar jag ett litet exempel:

Form1.cs

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            superComboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
            superComboBox1.StatusLabel = label1;
            superComboBox1.Items.Add(new SuperComboBoxItem("One", "My first item"));
            superComboBox1.Items.Add(new SuperComboBoxItem("Two", "My second item"));
            superComboBox1.Items.Add(new SuperComboBoxItem("Three", "My third item"));
            superComboBox1.SelectedIndex = 0;
        }
    }
}


SuperComboBox.cs
namespace WindowsApplication1
{
    public class SuperComboBox : ComboBox
    {
        Label statusLabel = null;

        public Label StatusLabel
        {
            set { statusLabel = value; }
        }

        public SuperComboBox()
        {
            this.DrawMode = DrawMode.OwnerDrawFixed;
            this.DrawItem += new DrawItemEventHandler(SuperComboBox_DrawItem);
        }

        void SuperComboBox_DrawItem(object sender, DrawItemEventArgs e)
        {
            Brush brush;

            //Mouse hovering
            if ((e.State & DrawItemState.Focus) == 0)
            {
                //No highlight
                e.Graphics.FillRectangle(Brushes.White, e.Bounds);
                brush = new SolidBrush(SystemColors.ControlText);
            }
            else
            {
                //Highlight
                Brush brushback = new SolidBrush(SystemColors.Highlight);
                e.Graphics.FillRectangle(brushback, e.Bounds);
                brush = new SolidBrush(SystemColors.HighlightText);
            }

            if (e.Index != -1)
            {
                Rectangle rect = new Rectangle(e.Bounds.X, e.Bounds.Y, 24, 24);
                e.Graphics.DrawString(((SuperComboBoxItem)this.Items[e.Index]).Text, this.Font, brush, 10, e.Bounds.Y + (e.Bounds.Height / 2) - (this.Font.Height / 2));
                if (statusLabel != null)
                    statusLabel.Text = ((SuperComboBoxItem)this.Items[e.Index]).ToolTip;
            }
        }
    }
}


SuperComboBoxItem.cs
namespace WindowsApplication1
{
    public class SuperComboBoxItem
    {
        private string text;
        private string toolTip;

        public string Text
        {
            get { return text; }
            set { text = value; }
        }

        public string ToolTip
        {
            get { return toolTip; }
            set { toolTip = value; }
        }

        public SuperComboBoxItem(string Text, string ToolTip)
        {
            this.text = Text;
            this.toolTip = ToolTip;
        }
    }
}


Dra ut en SuperComboBox från toolboxen.


Svara

Sv: Utöka (ärva) ComboBox-kontrollen

Postades av 2006-09-24 16:06:49 - Per Hultqvist

Nice, tusen tack. Jag trodde att man skulle behöva lägga en combobox i en usercontrol för att få in den i toolboxen.


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 153
27 952
271 704
731
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies