private void UpdateUpDown() { if (bUpDown) { if (Win32.IsWindowVisible(scUpDown.Handle)) { Rectangle rect = new Rectangle(); Win32.GetClientRect(scUpDown.Handle, ref rect); Win32.InvalidateRect(scUpDown.Handle, ref rect, true); } } }
internal void DrawControl(Graphics g) { if (!Visible) { return; } Rectangle TabControlArea = this.ClientRectangle; Rectangle TabArea = this.DisplayRectangle; //---------------------------- // fill client area Brush br = new SolidBrush(mBackColor); //(SystemColors.Control); UPDATED g.FillRectangle(br, TabControlArea); br.Dispose(); //---------------------------- //---------------------------- // draw border int nDelta = SystemInformation.Border3DSize.Width; Color color = Color.FromArgb(SystemColors.Control.A, SystemColors.Control.R, SystemColors.Control.G, SystemColors.Control.B); if (this.SelectedTab != null) { color = this.SelectedTab.BackColor; } Pen border = new Pen(color); TabArea.Inflate(nDelta, nDelta); g.DrawRectangle(border, TabArea); border.Dispose(); //---------------------------- //---------------------------- // clip region for drawing tabs Region rsaved = g.Clip; Rectangle rreg; int nWidth = TabArea.Width + nMargin; if (bUpDown) { // exclude updown control for painting if (Win32.IsWindowVisible(scUpDown.Handle)) { Rectangle rupdown = new Rectangle(); Win32.GetWindowRect(scUpDown.Handle, ref rupdown); Rectangle rupdown2 = this.RectangleToClient(rupdown); nWidth = rupdown2.X; } } rreg = new Rectangle(TabArea.Left, TabControlArea.Top, nWidth - nMargin, TabControlArea.Height); g.SetClip(rreg); // draw tabs for (int i = 0; i < this.TabCount; i++) { DrawTab(g, this.TabPages[i], i); } g.Clip = rsaved; //---------------------------- //---------------------------- // draw background to cover flat border areas if (this.SelectedTab != null) { TabPage tabPage = this.SelectedTab; border = new Pen(color); TabArea.Offset(1, 1); TabArea.Width -= 2; TabArea.Height -= 2; g.DrawRectangle(border, TabArea); TabArea.Width -= 1; TabArea.Height -= 1; g.DrawRectangle(border, TabArea); border.Dispose(); } //---------------------------- }