Change Tab Color upon opening a page C# Winforms Infragistics

42 Views Asked by At

When a page is opened, it opens multiple tabs. I am trying to figure out how to change the ultraTab1 color to Red based on a condition? What should be the event trigger? The event should automatically change the color of the UltraTab1 to Red when the page is opened.

HomeDesigner.cs

Infragistics.Win.UltraWinTabControl.UltraTab ultraTab1 = new Infragistics.Win.UltraWinTabControl.UltraTab();
private Infragistics.Win.UltraWinTabControl.UltraTabPageControl decorStyleTabPageControl;
this.decorStyleTabPageControl = new Infragistics.Win.UltraWinTabControl.UltraTabPageControl();
private Infragistics.Win.Misc.UltraPanel decorStylePanel;
this.decorStylePanel = new Infragistics.Win.Misc.UltraPanel();

ultraTab1.Key = "DecorStyle";
ultraTab1.TabPage = this.decorStyleTabPageControl;
ultraTab1.Text = "Decor Style";

this.decorStyleTabPageControl.Controls.Add(this.decorStylePanel);
this.decorStyleTabPageControl.Controls.Add(this.homeTabButtonPanel);
this.decorStyleTabPageControl.Location = new System.Drawing.Point(-10000, -10000);
this.decorStyleTabPageControl.Name = "decorStyleTabPageControl";
this.decorStyleTabPageControl.Size = new System.Drawing.Size(1051, 1051);

Condition as follows:

         if (e.Tab.Key == "DecorStyle")
         {
                if (count > 0)
                {
                    e.Tab.Appearance.ForeColor = Color.White;
                    e.Tab.Appearance.BackColor = Color.Red;
                    e.Tab.Appearance.BackColor2 = Color.Empty;
                }
                else
                {
                    e.Tab.Appearance.BackColor = Color.Green;
                }
         }
1

There are 1 best solutions below

0
Divya Muruganantham On
  1. Have a global variable in HomeDesigner.cs
  2. Set it to true when the event SelectedTabChanged is triggered.
  3. Loop the tab list and set the tab color for the required tab.

HomeDesigner.cs

var _decorStyleTabInitialized = false;

private async void mainTabControl_SelectedTabChanged(object sender, SelectedTabChangedEventArgs e){

    if(!_decorStyleTabInitialized){
        InitializeTabColor();
    }
}

private void InitializeTabColor(){
    var ultraTabCollection = this.decorStyleTabPageControl.Tabs;
    foreach(UltraTab tab in ultraTabCollection){
        if(tab.Key.Contains("DecorStyle")){
            SetTabColor(tab);
            _decorStyleTabInitialized = true;
        }
    }
}

private SetTabColor(UltraTab tab){
    tab.appearance.ForeColor = Color.White;
    tab.appearance.BackColor = Color.Red;
    tab.appearance.BackColor2 = Color.Empty;
}