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


Disabla vissa listviewitems

Postades av 2008-12-10 13:25:33 - Niklas Jansson, i forum vb.net, Tråden har 8 Kommentarer och lästs av 1316 personer

Har en listview med kontakter där jag vill att vissa rader inte ska gå att välja (de som är företag, man ska bara kunna välja personer), och dessutom gärna vara "utgråade".

Jag skulle förstås kunna göra så att jag inte visar företagen alls, men det blir av vissa skäl inte speciellt logiskt.

Kollade lite på om man skulle kunna säga till eventargumenten till typ "SelectedIndexChanged" att "Nä, men skippa att göra det i det här fallet", men kan inte hitta något.

Jag borde ju kunna hålla reda på "senast valda" och alltid byta tillbaka, men det är så jävla omständligt, och är ofta svårt att rensa på buggar. Förslag?


Svara

Sv: Disabla vissa listviewitems

Postades av 2008-12-10 18:21:25 - Thomas Roman

Kan du inte använda dig av Groups? Då blir dom indelade så här: http://blogs.vbcity.com/upload/djjeavons/explorer.jpg


/Thomas


Svara

Sv:Disabla vissa listviewitems

Postades av 2008-12-10 18:43:02 - Niklas Jansson

Det hjälper väl inte, jag kan ju fortfarande markera dem?


Svara

Sv: Disabla vissa listviewitems

Postades av 2008-12-10 19:56:59 - Daniel Eriksson

Tjena

Det går nog inte att göra med standardlistviewkontrollen. Gå in på codeproject.com och sök efter ListviewEx som är en klart roligare listview med mycket mer funktioner att leka med. Tyvärr så kommer man inte in på codeproject.com just nu... annars hade jag föreslagit en direktlänk.

/Daniel


Svara

Sv: Disabla vissa listviewitems

Postades av 2008-12-10 23:34:43 - Jan Bulér

Det här kanske är en bit på väg (ursäkta att det är i C#). nackdelen med denna lösning är att du inte kan bläddra förbi ett disablat item i ListBoxen med upp/ner-tangenterna.


<code>
private void Form1_Load(object sender, EventArgs e)
{
listBox1.DrawMode = DrawMode.OwnerDrawFixed;

//initiera testdata
for (int i = 0; i < 29; i++)
listBox1.Items.Add(i);
}

int mLastSelection = -1;
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
ListBox lb = (ListBox)sender;

if ((lb.SelectedItem != null) && (IsEnabledSelection((int)lb.SelectedItem)))
{
//Tillåtet val
mLastSelection = lb.SelectedIndex;
}
else
{
//EJ tillåtet val
lb.SelectedIndex = mLastSelection;
}
}

private void listBox1_DrawItem_1(object sender, DrawItemEventArgs e)
{
// Draw the background of the ListBox control for each item.
e.DrawBackground();

// Define the default color of the brush as black.
Brush myBrush = Brushes.White;

// Determine the color of the brush to draw each item based on the index of the item to draw.
if (!IsEnabledSelection((int)listBox1.Items[e.Index]))
{
//Not Enabled
myBrush = Brushes.LightGray;
}

//Fyll rektangeln (Comboboxen) med lämplig färg, Bakgrund
e.Graphics.FillRectangle(myBrush , e.Bounds);

// Draw the current item text based on the current Font and the custom brush settings.
e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, Brushes.Black, e.Bounds, StringFormat.GenericDefault);

// If the ListBox has focus, draw a focus rectangle around the selected item.
e.DrawFocusRectangle();
}

private bool IsEnabledSelection(int item)
{
return (item % 4) != 0;
}
}
</code>


Svara

Sv:Disabla vissa listviewitems

Postades av 2008-12-11 09:31:55 - Niklas Jansson

Mmm, det var ju mitt förslag:
"Jag borde ju kunna hålla reda på "senast valda" och alltid byta tillbaka, men det är så jävla omständligt, och är ofta svårt att rensa på buggar."

Jag tror jag skiter i det, och löser det på ett annat sätt, tack ändå.


Svara

Sv: Disabla vissa listviewitems

Postades av 2008-12-11 11:36:29 - Jan Bulér

Ang "Mmm, det var ju mitt förslag: ", ok, jag förstod nog inte att det var så du menade.

Vad är det som är så omständligt?

Gör en klass som sköter det där du skickar in din ListBox som en parameter i konstruktorn så kan du ju använda funktionen för alla dina LB eller så gör du en egen User Control med en LB och den funktionalitet du vill ha.


Svara

Sv:Disabla vissa listviewitems

Postades av 2008-12-11 12:29:52 - Niklas Jansson

Dels får kontrollen inte längre vettigt beteende om man inte också hanterar key-down-eventet, dels är det mycket kod för ganska liten användning, dels är det en hel del debuggande innan man är hyfsat säker på att allt fungerar som det ska.

Vad jag var ute efter var mer en liten enkel workaround som jag bara inte hade tänkt på. Det är bara en detalj i ett större system, och jag kan lösa det på andra sätt. Men jag ska ha det i åtanke nästa gång.


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
1 019
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