powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / есть панель закладок, на одной датагридвью с данными для графика, на второй +
4 сообщений из 4, страница 1 из 1
есть панель закладок, на одной датагридвью с данными для графика, на второй +
    #38927941
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
рисуется сам график.
График, собственно, не рисуется, пока не подвигать окно.

куда воткнуть инвалитаде?


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
            panel = new Panel();
            panel.BorderStyle = BorderStyle.FixedSingle;
            panel.AutoScroll = true;
            panel.Dock = DockStyle.Fill;
            panel.GotFocus += Control1_GotFocus;   //<_________________
            tab_page3.GotFocus += Control2_GotFocus;  //<------------
          //  panel.Invalidate();

            tab_page1.Controls.Add(table);
            tab_page2.Controls.Add(data);
            tab_page3.Controls.Add(panel);

            tab_menu.Controls.AddRange(new Control[] { tab_page1, tab_page2, tab_page3 });
            Controls.Add(tab_menu);

            Open_file(file, nRows);
            Data_to_paint();

            tab_menu.Visible = false;          
            Paint += Modul_Paint;
            tab_menu.Visible = true;  
            Invalidate();
        }
        private void Control1_GotFocus(Object sender, EventArgs e) {

           l.WriteLine("You are in the Panel.GotFocus event.");

        }
        private void Control2_GotFocus(Object sender, EventArgs e) {

           l.WriteLine("You are in the TabPanel3.GotFocus event.");

        }
        void Modul_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = panel.CreateGraphics();
            g.DrawLines(new Pen(Color.Black), point_paint.ToArray());
           l.WriteLine("You are in paint event.");

        }
...
Рейтинг: 0 / 0
есть панель закладок, на одной датагридвью с данными для графика, на второй +
    #38927969
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если поменять: на первую выставить график?
...
Рейтинг: 0 / 0
есть панель закладок, на одной датагридвью с данными для графика, на второй +
    #38930816
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не выводится все равно.
Иногда видно, что мелькает, а потом исчезает.
Повесил инвалидате на смену индекса закладки, если закладка с графиком не первая
получилось как хотел. Но все равно, както подозрительно, почему на первой закладке не рисует сразу?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
            tab_menu.Controls.Add( tab_page3);
            tab_menu.Controls.Add( tab_page2);
            tab_menu.Controls.Add( tab_page1);
            tab_menu.SelectedIndexChanged  ///[color=red] <-----------------------------------------!!![/color]
               += new System.EventHandler(this.tabControl1_SelectedIndexChanged);

            Controls.Add(tab_menu);
            

            Open_file(file, nRows);
            Data_to_paint();

            tab_menu.Visible = false;          
            Paint += Modul_Paint;
            tab_menu.Visible = true;  
            Modul_Paint(this, new PaintEventArgs (CreateGraphics() ,ClientRectangle));
            this.Load += new System.EventHandler(this.Form1_Load);
          //  Invalidate();
        }

        private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
        {
//            if (tab_menu.SelectedIndex == 0)
            if (tab_menu.SelectedIndex == 2)
            {
                l.WriteLine("SelectedIndexChanged index:{0}", tab_menu.SelectedIndex);
               // Invalidate();
           //    
             Modul_Paint(this, new PaintEventArgs (CreateGraphics() ,ClientRectangle));
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
           Invalidate();
           Modul_Paint(this, new PaintEventArgs (CreateGraphics() ,ClientRectangle));
           l.WriteLine("You are in the Form1_Load event add Invalidate.");
        }


        private void Control1_GotFocus(Object sender, EventArgs e) {

           l.WriteLine("You are in the Panel.GotFocus event.");

        }
...
Рейтинг: 0 / 0
есть панель закладок, на одной датагридвью с данными для графика, на второй +
    #38930863
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
рисование надо вешать не на все окно,
а на закладку где график и все получается хорошо

Код: c#
1.
2.
3.
4.
 
           panel.Paint += Modul_Paint;  // ПРАВИЛЬНО
         //   Paint += Modul_Paint;          //  НЕ ПРАВИЛЬНО
            tab_page3.Controls.Add(panel);        //график
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / есть панель закладок, на одной датагридвью с данными для графика, на второй +
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]