Hirdetés

Új hozzászólás Aktív témák

  • G.A.

    aktív tag

    Üdv!

    Egy NumUpDown számlálót (0-255) és egy 8 paraméterrel rendelkező CheckedListBox "értékeit" szeretném szinkronban megjeleníteni. Azaz ha egyiket módosítom, akkor a másik is változzon.
    Ehhez Evenet interruptokat használok.
    Ha a felhasználó a NumUpDown-t változtatja, akkor annak az Event interruptja megváltoztatja a CheckedListBox "értékeit".
    A másiknál vica-versa, de itt már problémás a dolog. Néha megy, néha nem.

    private void NumUpDown_ValueChanged(object sender, EventArgs e)
            {
                    byte temp = (byte)NumUpDown.Value;
                    for (int i = 0; i < CheckedListBox.Items.Count; i++)
                    {
                        CheckedListBox.SetItemChecked(i,IsBitSet(temp,i));
                    }
                CheckedListBox.Refresh();
            }

    private void CheckedListBox_SelectedValueChanged(object sender, EventArgs e)
            {
                byte temp = 0;
                for (int i = 0; i < CheckedListBox.Items.Count; i++)
                {
                    if (CheckedListBox.GetItemChecked(i))
                    {
                        temp += (byte)Math.Pow(2, (i % 8));
                    }
                }
                NumUpDown.Value = (decimal)temp;
                NumUpDown.Refresh();
    }

    A hibát leginkább úgy tudnám jellemezni, hogy akkor jön elő, ha túl gyorsan jelölöm be (vagy ki) a mezőket CheckedListBox-ban. Merre keressem a hibát?

Új hozzászólás Aktív témák