Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

how can i fill color in my tab control which i have marked with red line ??

Posted on 2011-02-28
4
Medium Priority
?
319 Views
Last Modified: 2012-05-11
i want to know that how can i fill color in my tab control which i have marked with red line ??

please refer the attached snapshot ....

tell me what can i do now ??

give me some suggestions ....

28-02-2011-6-14-27-PM.jpg
0
Comment
Question by:Parth48
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 13

Accepted Solution

by:
Naman Goel earned 2000 total points
ID: 34996664
use DrawMode = TabDrawMode.OwnerDrawFixed;

and using DrawItem you can paint in whatever way you want

refer to following sample code for more details.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public partial class TestForm : Form
    {
        private TabControl tabControl1;
        private TabPage tabPage1;
        private RadioButton rbq1_d;
        private RadioButton rbq1_c;
        private RadioButton rbq1_b;
        private RadioButton rbq1_a;
        private Label label1;
        private TabPage tabPage2;
        private Color TabControlBackColor;
        private DataGridView dataGridView1;
        private DataGridViewTextBoxColumn serialnumber;
        private DataGridViewTextBoxColumn Value;
        private SolidBrush TabControlBrush = null;

    
        public TestForm()
        {
            

            InitializeComponent();
            tabControl1.DrawMode = TabDrawMode.OwnerDrawFixed;

            TabControlBackColor = Color.Blue;
            TabControlBrush = new SolidBrush(TabControlBackColor);

            foreach (TabPage page in tabControl1.TabPages)
            {
                page.BackColor = TabControlBackColor;
            }
            
            dataGridView1.Rows.Add( "1", null,"2", null );
            
        }

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                TabControlBrush.Dispose();
            }
            base.Dispose(disposing);
        }

        private void InitializeComponent()
        {
            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
            this.tabControl1 = new System.Windows.Forms.TabControl();
            this.tabPage1 = new System.Windows.Forms.TabPage();
            this.rbq1_d = new System.Windows.Forms.RadioButton();
            this.rbq1_c = new System.Windows.Forms.RadioButton();
            this.rbq1_b = new System.Windows.Forms.RadioButton();
            this.rbq1_a = new System.Windows.Forms.RadioButton();
            this.label1 = new System.Windows.Forms.Label();
            this.tabPage2 = new System.Windows.Forms.TabPage();
            this.dataGridView1 = new System.Windows.Forms.DataGridView();
            this.serialnumber = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.Value = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.tabControl1.SuspendLayout();
            this.tabPage1.SuspendLayout();
            this.tabPage2.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
            this.SuspendLayout();
            // 
            // tabControl1
            // 
            this.tabControl1.Controls.Add(this.tabPage1);
            this.tabControl1.Controls.Add(this.tabPage2);
            this.tabControl1.Location = new System.Drawing.Point(13, 13);
            this.tabControl1.Name = "tabControl1";
            this.tabControl1.SelectedIndex = 0;
            this.tabControl1.Size = new System.Drawing.Size(254, 203);
            this.tabControl1.TabIndex = 0;
            this.tabControl1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.tabControl1_DrawItem);
            // 
            // tabPage1
            // 
            this.tabPage1.BackColor = System.Drawing.SystemColors.Control;
            this.tabPage1.Controls.Add(this.rbq1_d);
            this.tabPage1.Controls.Add(this.rbq1_c);
            this.tabPage1.Controls.Add(this.rbq1_b);
            this.tabPage1.Controls.Add(this.rbq1_a);
            this.tabPage1.Controls.Add(this.label1);
            this.tabPage1.Location = new System.Drawing.Point(4, 22);
            this.tabPage1.Name = "tabPage1";
            this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
            this.tabPage1.Size = new System.Drawing.Size(246, 177);
            this.tabPage1.TabIndex = 0;
            this.tabPage1.Text = "Question1";
            // 
            // rbq1_d
            // 
            this.rbq1_d.AutoSize = true;
            this.rbq1_d.Location = new System.Drawing.Point(20, 133);
            this.rbq1_d.Name = "rbq1_d";
            this.rbq1_d.Size = new System.Drawing.Size(84, 17);
            this.rbq1_d.TabIndex = 4;
            this.rbq1_d.TabStop = true;
            this.rbq1_d.Text = "d. Comma (,)";
            this.rbq1_d.UseVisualStyleBackColor = true;
            // 
            // rbq1_c
            // 
            this.rbq1_c.AutoSize = true;
            this.rbq1_c.Location = new System.Drawing.Point(20, 110);
            this.rbq1_c.Name = "rbq1_c";
            this.rbq1_c.Size = new System.Drawing.Size(99, 17);
            this.rbq1_c.TabIndex = 3;
            this.rbq1_c.TabStop = true;
            this.rbq1_c.Text = "c. SemiColon (;)";
            this.rbq1_c.UseVisualStyleBackColor = true;
            // 
            // rbq1_b
            // 
            this.rbq1_b.AutoSize = true;
            this.rbq1_b.Location = new System.Drawing.Point(20, 87);
            this.rbq1_b.Name = "rbq1_b";
            this.rbq1_b.Size = new System.Drawing.Size(76, 17);
            this.rbq1_b.TabIndex = 2;
            this.rbq1_b.TabStop = true;
            this.rbq1_b.Text = "b. Colon (:)";
            this.rbq1_b.UseVisualStyleBackColor = true;
            // 
            // rbq1_a
            // 
            this.rbq1_a.AutoSize = true;
            this.rbq1_a.Location = new System.Drawing.Point(20, 64);
            this.rbq1_a.Name = "rbq1_a";
            this.rbq1_a.Size = new System.Drawing.Size(79, 17);
            this.rbq1_a.TabIndex = 1;
            this.rbq1_a.TabStop = true;
            this.rbq1_a.Text = "a. Period (.)";
            this.rbq1_a.UseVisualStyleBackColor = true;
            // 
            // label1
            // 
            this.label1.Location = new System.Drawing.Point(17, 8);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(211, 53);
            this.label1.TabIndex = 0;
            this.label1.Text = "1. what does it mean if you compile c# source code file and you only get copyrigh" +
                "t information about microsoft as response?";
            // 
            // tabPage2
            // 
            this.tabPage2.Controls.Add(this.dataGridView1);
            this.tabPage2.Location = new System.Drawing.Point(4, 22);
            this.tabPage2.Name = "tabPage2";
            this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
            this.tabPage2.Size = new System.Drawing.Size(246, 177);
            this.tabPage2.TabIndex = 1;
            this.tabPage2.Text = "Question2";
            this.tabPage2.UseVisualStyleBackColor = true;
            // 
            // dataGridView1
            // 
            this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
            this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
            this.serialnumber,
            this.Value});
            dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
            dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window;
            dataGridViewCellStyle2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText;
            dataGridViewCellStyle2.NullValue = "NULL";
            dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
            dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
            dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
            this.dataGridView1.DefaultCellStyle = dataGridViewCellStyle2;
            this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill;
            this.dataGridView1.Location = new System.Drawing.Point(3, 3);
            this.dataGridView1.Name = "dataGridView1";
            this.dataGridView1.Size = new System.Drawing.Size(240, 171);
            this.dataGridView1.TabIndex = 0;
            // 
            // serialnumber
            // 
            this.serialnumber.HeaderText = "S. No.";
            this.serialnumber.Name = "serialnumber";
            // 
            // Value
            // 
            this.Value.HeaderText = "Name";
            this.Value.Name = "Value";
            // 
            // TestForm
            // 
            this.BackColor = System.Drawing.Color.Red;
            this.ClientSize = new System.Drawing.Size(292, 273);
            this.Controls.Add(this.tabControl1);
            this.KeyPreview = true;
            this.Name = "TestForm";
            this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TestForm_KeyDown);
            this.tabControl1.ResumeLayout(false);
            this.tabPage1.ResumeLayout(false);
            this.tabPage1.PerformLayout();
            this.tabPage2.ResumeLayout(false);
            ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
            this.ResumeLayout(false);

        }

        private void tabControl1_DrawItem(object sender, DrawItemEventArgs e)
        {
            e.Graphics.FillRectangle(TabControlBrush, new Rectangle(0, 0, tabControl1.Width, tabControl1.Height));
        }

        private void TestForm_KeyDown(object sender, KeyEventArgs e)
        {
            Application.Exit();
        }
    }
}

Open in new window

0
 

Author Comment

by:Parth48
ID: 35004308
hi @naman_goel:

my coding is below but i can't paint that red mark line which has been seen in attached snapshot....

private void tbQuestionBank_DrawItem(object sender, DrawItemEventArgs e)
        {
            TabPage currenttab = tbQuestionBank.TabPages[e.Index];
            tbQuestionBank.DrawMode = TabDrawMode.OwnerDrawFixed;
            Rectangle ItemRect = tbQuestionBank.GetTabRect(e.Index);
            SolidBrush FillBrush = new SolidBrush(Color.FromKnownColor(KnownColor.InactiveCaptionText));
            SolidBrush TextBrush = new SolidBrush(Color.Black);
            StringFormat sf = new StringFormat();
            sf.Alignment = StringAlignment.Center;
            sf.LineAlignment = StringAlignment.Center;

            //if we are currently painted the selected tab item then we can change the brush color
            if(System.Convert.ToBoolean(e.State & DrawItemState.Selected))
            {
                FillBrush.Color = Color.FromKnownColor(KnownColor.InactiveCaptionText);
                TextBrush.Color = Color.Black;
                ItemRect.Inflate(2,2);
            }
            //Set up rotation for left and right aligned tabs
            if (tbQuestionBank.Alignment == TabAlignment.Left || tbQuestionBank.Alignment == TabAlignment.Right)
            {
                float RotateAngle = 90;
                if (tbQuestionBank.Alignment == TabAlignment.Left)
                    RotateAngle = 270;
                PointF cp = new PointF(ItemRect.Left + (ItemRect.Width / 2), ItemRect.Top + (ItemRect.Height / 2));
                e.Graphics.TranslateTransform(cp.X, cp.Y);
                e.Graphics.RotateTransform(RotateAngle);
                ItemRect = new Rectangle(-(ItemRect.Height / 2), -(ItemRect.Width / 2), ItemRect.Height, ItemRect.Width);
            }

            //Next we'll paint the TabItem with our Fill Brush
            e.Graphics.FillRectangle(FillBrush, ItemRect);

            //Now draw the text.
            e.Graphics.DrawString(currenttab.Text, e.Font, TextBrush, (RectangleF)ItemRect, sf);

            //Reset any Graphics rotation
            e.Graphics.ResetTransform();

            //Finally, we should Dispose of our brushes.
            FillBrush.Dispose();
            TextBrush.Dispose();
        }

Open in new window


is there anything wrong in the above code ??
0
 

Author Comment

by:Parth48
ID: 35016024
i can't do it , can u please tell me how can i fill that red line marked area ??
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
This article aims to explain the working of CircularLogArchiver. This tool was designed to solve the buildup of log file in cases where systems do not support circular logging or where circular logging is not enabled
In this video, Percona Director of Solution Engineering Jon Tobin discusses the function and features of Percona Server for MongoDB. How Percona can help Percona can help you determine if Percona Server for MongoDB is the right solution for …
Want to learn how to record your desktop screen without having to use an outside camera. Click on this video and learn how to use the cool google extension called "Screencastify"! Step 1: Open a new google tab Step 2: Go to the left hand upper corn…

636 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question