4
Answers

Raise a event automatically

Arun A

Arun A

16y
4.2k
1
Hi all,

i am developing a windows applicaton in which i need to raise a event automatically at a certain time.i.e. i need to make a entry to the database(MSSQL 2005) at a particular time(system time). i was able to achieve this  using a timer control where the timer control will be run on every second interval.But i don't think it's  a good method since it will be using the resources everytime. i want to raise the event only at a particular time. i don't prefer Shedule Task. is there any other method by which i can achieve this.Any help will be appreciated.

Answers (4)
0
Vulpes
NA 98.3k 1.5m 13y
You'll need to call Application.DoEvents() before Thread.Sleep(), otherwise the color changes will be cached by GDI+ and won't take effect until the method ends.

Here's how I'd do it. I'm assuming that the buttons all have different colors to start with and you want them to retain their colors when they are in sorted order. You don't need to deal with the case i == 5 as it will never be called:

        public void SwapColor(Button b1, Button b2)
        {
            Color tempColor = b1.BackColor;
            b1.BackColor = b2.BackColor;
            b2.BackColor = tempColor;
        }

        public void BubbleSort(int[] array, int Size)
        {
            int temp;

            for (int pass = 1; pass < Size; pass++)
            {
                for (int i = 0; i < Size - pass; i++)
                {
                    if (array[i] > array[i + 1])
                    {
                        if (i == 0)
                        {
                            SwapColor(btn1, btn2);
                        }
                        if (i == 1)
                        {
                            SwapColor(btn2, btn3);                       
                        }
                        if (i == 2)
                        {
                            SwapColor(btn3, btn4);
                        }
                        if (i == 3)
                        {
                            SwapColor(btn4, btn5);
                        }
                        if (i == 4)
                        {
                            SwapColor(btn5, btn6);
                        }
                       
                        Application.DoEvents();
                        Thread.Sleep(1000); // 2000 is a bit long 
                        temp = array[i];
                        array[i] = array[i + 1];
                        array[i + 1] = temp;
                    }
                }
            }
            a();
        }