示例#1
0
        private void CreateMemberHeaders()
        {
            columnHeaderLayoutPanel.SuspendLayout();
            columnHeaderLayoutPanel.Controls.Clear();
            columnHeaderLayoutPanel.ColumnCount = 1;
            Panel filler = new Panel();

            columnHeaderLayoutPanel.Controls.Add(filler);
            columnHeaderLayoutPanel.ColumnStyles[0] = new ColumnStyle(SizeType.Absolute, buttonSize / 2);
            filler.Dock = DockStyle.Fill;
            columnHeaderLayoutPanel.ColumnCount++;
            if (trip.members.Count > 0)
            {
                foreach (Member member in trip.members)
                {
                    columnHeaderLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100));
                    UserHeaderControl userHeaderControl = new UserHeaderControl(member);
                    columnHeaderLayoutPanel.Controls.Add(userHeaderControl);
                    userHeaderControl.Dock = DockStyle.Fill;
                    columnHeaderLayoutPanel.ColumnCount++;
                }
                totalHeaderControl = new TotalHeaderControl();
                columnHeaderLayoutPanel.Controls.Add(totalHeaderControl);
                columnHeaderLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100));
                totalHeaderControl.Dock = DockStyle.Fill;
            }
            columnHeaderLayoutPanel.ResumeLayout();
        }
示例#2
0
        private void gridPanel_MouseClick(object sender, MouseEventArgs e)
        {
            if (currentRow != null && currentColumn != null)
            {
                bool buttonPressed = false;
                int  i             = 0;
                while (!buttonPressed && i < orderFocusButtons.Count())
                {
                    RoundButton button = orderFocusButtons[i];
                    if (button.GetButtonRegion(new Rectangle(currentColumn.Left, currentRow.Top, currentColumn.Width, currentRow.Height), buttonSize).IsVisible(e.Location))
                    {
                        buttonPressed = true;
                        button.Invoke();
                    }
                    i++;
                }
                if (buttonPressed) // we handled a button press, nothing else to do here
                {
                    return;
                }
                gridPanel.Invalidate(new Rectangle(currentColumn.Left - buttonSize, currentRow.Top, currentColumn.Width + buttonSize * 2, currentRow.Height));
            }
            Control columnCtrl = columnHeaderLayoutPanel.GetChildAtPoint(new Point(e.X, 0));
            Control rowCtrl    = rowHeaderLayoutPanel.GetChildAtPoint(new Point(0, e.Y));

            if (rowCtrl is BottleRowHeaderControl && columnCtrl is UserHeaderControl && (rowCtrl != currentRow || columnCtrl != currentColumn))
            {
                currentRow    = (BottleRowHeaderControl)rowCtrl;
                currentColumn = (UserHeaderControl)columnCtrl;
            }
            else
            {
                currentRow    = null;
                currentColumn = null;
            }
            if (currentRow != null && currentColumn != null)
            {
                gridPanel.Invalidate(new Rectangle(currentColumn.Left - buttonSize, currentRow.Top, currentColumn.Width + buttonSize * 2, currentRow.Height));
            }
        }