Jag vill kunna sätta vissa flikar i en tabcontrol till disable på något sätt. Jag vet att varje tab har ett index men får inte riktigt rätt på det. Jag provade att använda Nä, jag har också provat det som du skrev utan något resultat. Jag letar vidare och hoppas på ett svar av någon, eller mig själv :-) this.tabPage1.Enabled = false eller this.tabControl1.TabPages[0].Enabled = false; 'disablar' alla Kontroller på 'TabPagen' men inte själva fliken (knappen) man trycker på för att välja TabPage eftersom den inte tillhör TabPage utan TabControlen. Detta är det närmaste en enable/disable funktion jag kommit. kan du inte bara ta bort dem ifrån TabControllen då? Se mitt tips : [Dölja/visa tabbar i en TabControl] Per, Det går säkert att lösa, genom att typ rita över tabbarna så att de ser disablade ut och stoppa clickeventet så att inte tabben aktiveras, men det är ju en skitlösning i mina ögon...det var därför jag valde att dölja flikarna i min applikation tills någon släpper en vettig tabkontroll. En vettig tabkontroll men en enable/disable-funktionalitet som fungerar som den ska göra...Tabcontrol
Mvh
// MartinSv: Tabcontrol
<code>
foreach(TabPage t in tabControl1.TabPages)
{
t.Enabled = false;
}
</code>
men det verkade inte göra någon nytta. Läser man i hjälpen på TabPage klassen verkar där inte stå något om .Enabled?
/AndersSv: Tabcontrol
// MartinSv: Tabcontrol
//
JanneSv: Tabcontrol
Tror inte att det finns nåt annat sätt om du inte vill skriva en egen. I så fall kommer här ett förslag på hur man skulle kunna göra:
Spara vilken flik som är aktiv i en variabel (ett index).
Spara vilka flikar som är disabled i en array (ett eller flera index).
När TabControllen får ett nytt SelectedIndex (lyssna på SelectedIndexChanged) så kollar du att det nya indexet inte är med arrayen med disablade. Är den det så hoppar du till baka till aktiva indexet (dvs föregående sida). Annars sätter du denna sidan till aktiv flik. Alltså typ:
TabControl myControl
int[] disabled=new int[]{1,3,5};
int active=2;
public void SelectedIndexChanged(object sender, EventArgs e)
{
int currIndex=MyControl.SelectedIndex;
bool found=false;
for(int i=0;i<disabled.Count && !found;i++)
{
if(currIndex==disabeld[i]) //vi har en träff i disabled
{
myControl.SelectedIndex=active;
found=true;
}
}
if(!found) //vi hittade ingen
{
active=myControl.SelectedIndex;
}
}Sv: Tabcontrol
Mitt tips handlar iofs om hur man döljer/visar tabbar vilket jag valde att göra när jag fick samma problem som du med Enabled-propertyn.Sv: Tabcontrol
Tack för ditt exempel. Jag har inte provat det ännu men jag antar att man kan styra vilka tabpages som ska visas och inte visas.
Det går alltså inte att enbart få dem "disable" utan det är remove som gäller ?Sv: Tabcontrol
Det roliga är att Magic Tools (http://www.dotnetmagic.com) har en tabbkontroll som fungerar precis likadant, dvs utan enable/disable-funktionalitet...har dom rippat den rakt av börjar man ju undra? :-)