Avatar billede bjering Nybegynder
16. februar 2007 - 21:59 Der er 8 kommentarer og
1 løsning

Disable select af items in listview og text fra andre classes.

Okay, 2 spørgsmål :)

1) hvordan disabler jeg så man ikke kan klikke på teksten i en listboks ?

2) jeg vil gerne så jeg har en "global" ddLogText(int type, String Text) i min program, så jeg kan tilføje fra en hvilken som helst class til min listboks.

init af min dialog:

(main.cs)

        [STAThread]
        static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            Application.Run(new Form1());           
            Application.Exit();
        }

og så i min Form1.cs

        public void AddLogText(int type, String Text)
        {
            this.m_LogListView.BeginUpdate();

            DateTime tid = DateTime.Now;
            string logtid = tid.ToString("[dd-MM-yy] [HH:mm:ss]");
            ListViewItem item1 = new ListViewItem(logtid, 0);

            string thistext = null;
            if (type == 0x00)
            { thistext = Text; }
            else if (type == 0x01)
            { thistext = "[SERVER] " + Text; }
            else if (type == 0x02)
            { thistext = "[GAME] " + Text; }
            else if (type == 0x03)
            { thistext = "[ERROR] " + Text; }
     
            item1.SubItems.Add(thistext);
            this.m_LogListView.Items.Add(item1);
           
            this.m_LogListView.EndUpdate();
            return;
        }

jeg kan godt adde tekst fra min Form1 class, men hvis jeg f.eks går i en anden class, lad os sige Begin.cs så kan jeg ikke..

(Begin.cs)

  class Begin
    {
        Form1 mtf = new Form1();

....

en anden sted

    mtf.AddLogText(Form1.SERVER, "MySQL connection failed.");

så skriver den det ikke i min listboks.... (listboks = detail)

nogen ide'er ?

Takker.
Avatar billede kalp Novice
16. februar 2007 - 22:45 #1
1. listBox1.Enabled = false;
Avatar billede kalp Novice
16. februar 2007 - 22:51 #2
2. den er lidt kringlet.. men en metode som er static og som kun tilføjer text til den textbox hvis selve klassen den befinder sig i ikke er null.
Avatar billede bjering Nybegynder
16. februar 2007 - 22:59 #3
1) dutter ikke..

this.m_LogListView.Enabled = false;

og min listview skifter til den grimmeste baggrunds farve :P
Avatar billede bjering Nybegynder
16. februar 2007 - 23:22 #4
hvis jeg bruger

public static void AddLogText(int type, String Text)
{
...
}

hvordan dælen får jeg så adgang til m_LogListView ?

An object reference is required for the nonstatic field, method, or property
Avatar billede kalp Novice
16. februar 2007 - 23:23 #5
m_LogListView skal også være static
Avatar billede kalp Novice
16. februar 2007 - 23:31 #6
okay.. nr. kan du lave sådan her. feks. (du behøver kun en af dem)

this.m_LogListView.MouseClick += new System.Windows.Forms.MouseEventHandler(this.m_LogListView_MouseClick);
this.m_LogListView.SelectedIndexChanged += new System.EventHandler(this.m_LogListView_SelectedIndexChanged);



    private void this.m_LogListView_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.m_LogListView.SelectedIndex = -1;
        }

        private void this.m_LogListView_MouseClick(object sender, MouseEventArgs e)
        {
            this.m_LogListView.SelectedIndex = -1;
        }
Avatar billede kalp Novice
16. februar 2007 - 23:45 #7
det med static kommer nok ikke til at virke..
Avatar billede kalp Novice
16. februar 2007 - 23:47 #8
sorry for spam:)
men hvis din klasse som indeholder din listboks også er den som opretter de andre klasser så kan du sende en reference af den til de andre deres konstruktør og så har du adgang til din listboks fra alle klasser.
Avatar billede kalp Novice
16. februar 2007 - 23:57 #9
her har du et kodeeksempel på begge dine spørgsmål.

www.kalp.dk/listb.zip
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester