コード例 #1
0
ファイル: MainForm.cs プロジェクト: Gitenax/TrackingApp
        public MainForm()
        {
            InitializeComponent();

            // Инициализация базового класса для работы с БД
            new Base(dbPath);

            DataList_Estimate.AutoSizeColumnsMode      = DataGridViewAutoSizeColumnsMode.AllCells;
            DataList_Trackinglists.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
            DataList_Estimate.exSetDoubleBuffered();
            DataList_Trackinglists.exSetDoubleBuffered();
        }
コード例 #2
0
ファイル: MainForm.cs プロジェクト: Gitenax/TrackingApp
        // +------------------------------------+
        // |    Синхронизация работы DataGrid   |
        // +====================================+
        // | LoadAllData---------------[  OK  ] |
        // | UpdateData----------------[  OK  ] |
        // | UpdateAllData-------------[  OK  ] |
        // | AddRow--------------------[  OK  ] |
        // | EditRow-------------------[  OK  ] |
        // | RemoveRow-----------------[  OK  ] |
        // | GetCurrentRowInfo---------[  OK  ] |
        // +------------------------------------+

        // Загрузка данных из БД
        void LoadAllData()
        {
            DataList_Estimate.exFill("Estimate", Base.CustomQueries["EstimateFill"]);
            DataList_Trackinglists.exFill("Trackinglists", Base.CustomQueries["TrackinglistFill"]);
            SetColumnHeaders();

            void SetColumnHeaders()
            {
                // [STEP: 1] - Перебирает каждую вкладку в TabControl
                foreach (TabPage p in TabMain.TabPages)
                {
                    // [STEP: 2] - Перебирает каждый DataGridView в текущей вкладке(но он всего один)
                    foreach (DataGridView grid in p.Controls.OfType <DataGridView>())
                    {
                        // [STEP: 3] - Получение списка заголовков по ключу(наименование DataGrid)
                        grid.CellDoubleClick += Grid_CellDoubleClick;
                        grid.CellClick       += Grid_CellClick;
                        List <string> lst = Base.ColumnHeaders[grid.Name];
                        for (int i = 0; i < grid.ColumnCount; i++)
                        {
                            if (grid.Name.Equals("DataList_Trackinglists"))
                            {
                                break;
                            }
                            else
                            {
                                grid.Columns[i].HeaderText = lst[i];
                            }
                        }
                    }
                }
                // Костыль для заголовков Trackinglist
                for (int i = 1; i < DataList_Trackinglists.ColumnCount - 1; i++)
                {
                    List <string> lst = Base.ColumnHeaders[DataList_Trackinglists.Name];
                    DataList_Trackinglists.Columns[i + 1].HeaderText = lst[i];
                }
            }
        }
コード例 #3
0
ファイル: MainForm.cs プロジェクト: Gitenax/TrackingApp
 // Обновление всех столбцов
 void UpdateAllData()
 {
     DataList_Estimate.exFill("Estimate", Base.CustomQueries["EstimateFill"]);
     DataList_Trackinglists.exFill("Trackinglists", Base.CustomQueries["TrackinglistFill"]);
 }
コード例 #4
0
ファイル: MainForm.cs プロジェクト: Gitenax/TrackingApp
        // Обновление конкретной таблицы
        void UpdateData(int rowIndex = -1, bool delete = false, bool multirow = false)
        {
            DataGridView grid = (DataGridView)TabMain.SelectedTab.Controls[0];             // Выбираем DataGridView в TabPage. NOTE: Controls[0], потому, что DataGridView единственный контрол в TabPage

            switch (TabMain.SelectedTab.Name)
            {
            case "FPage_Estimate": DataList_Estimate.exFill("Estimate", Base.CustomQueries["EstimateFill"]); break;

            case "FPage_Trackinglists": DataList_Trackinglists.exFill("Trackinglists", Base.CustomQueries["TrackinglistFill"]); break;
            }
            #region Выделение последней выделенной строки
            if (rowIndex != -1 && delete == false && multirow == false)
            {
                grid.ClearSelection();
                grid.CurrentCell = grid[2, rowIndex];
                grid.ClearSelection();
                grid[2, rowIndex].Selected = true;
            }
            else if (delete == true && multirow == false)
            {
                if (grid.RowCount > 0)
                {
                    int lastRow = grid.Rows.Count;
                    if (rowIndex == lastRow)
                    {
                        grid.ClearSelection();
                        grid.CurrentCell = grid[2, grid.Rows.Count - 1];
                        grid.ClearSelection();
                        grid[2, grid.Rows.Count - 1].Selected = true;
                    }
                    else
                    {
                        grid.ClearSelection();
                        grid.CurrentCell = grid[2, rowIndex];
                        grid.ClearSelection();
                        grid[2, rowIndex].Selected = true;
                    }
                }
            }
            else if (delete == true && multirow == true)
            {
                if (grid.RowCount > 0)
                {
                    grid.ClearSelection();
                    grid.CurrentCell = grid[1, 0];
                    grid.ClearSelection();
                    grid[1, 0].Selected = true;
                }
            }
            else
            {
                if (grid.RowCount > 1)
                {
                    grid.ClearSelection();
                    grid.CurrentCell = grid[2, grid.Rows.Count - 1];
                    grid.ClearSelection();
                    grid[2, grid.Rows.Count - 1].Selected = true;
                }
            }
            #endregion
        }