Díky páni, nakoniec sa mi to podarilo,
dospel som k záveru, že VS je o mnoho inteligentnejší nástroj, ako som ho na začiatku pokladal. Som si uvedomil, že ja som sprostý. Tu je kod, dúfam, že som ho dal dokopy dobre aj s vysvetlivkami... ak náhodou niečo pls opravte, ale mne to funguje...
1/ najprv nastaviť tabControl Alignment =Right, SizeMode =Fixed,DrawMode=OwnerDrawFixed, ItemSizeWidth = 20, ItemSizeHeight = 80
následne v preporities okne kliknút na"events" a vybrať "DrawItem" a potom samotny kod
private void tabControl1_DrawItem(object sender, DrawItemEventArgs e)
{
Graphics g = e.Graphics;
Brush farbaPisma;
// Povyberame po jednom taby akoby "prva", "druha" atd...
TabPage konkretnyTab = tabControl1.TabPages[e.Index];
// vybereme obdlznik, v ktorom je jednotlivy tab, cize prvy, druhy atd...
Rectangle obdlznikDanehoTabu = tabControl1.GetTabRect(e.Index);
if (e.State == DrawItemState.Selected)
{
// obsluzime tab, ktory je vybrany, cize oznaceny
farbaPisma = new SolidBrush(Color.Black); //farba pisma na vybranom tabe
g.FillRectangle(Brushes.White, obdlznikDanehoTabu); // farba pozadia vybraneho tabu
}
else
{
// tab ktory nie je vybraty, cize vsetky co nie su oznacene
farbaPisma = new SolidBrush(Color.Black); // farba pisma na nevybratom tabe, ja som nechal v oboch ciernu, cize toto som nemusel davat do pomienky
g.FillRectangle(Brushes.LightGray, obdlznikDanehoTabu); //farba pozadia tabu, ktory nie je vybraty
}
// nadefinujeme si font, lebo ho potrebujeme pri vykreslovani retazca ako parameter
Font fontPisma = new Font("Arial", 10, FontStyle.Bold, GraphicsUnit.Pixel);
StringFormat formatTextu = new StringFormat(); //format textu ziskame, akoze orientaciu a pod.
formatTextu.Alignment = StringAlignment.Center; // zarovname na stred
formatTextu.LineAlignment = StringAlignment.Center; // zarovna text na horizontalny cize do riadku
// napiseme text, ktory ma tab.txt, dame font, farbu pisma, vybrany odblznik, zhorizontalneny text vypiseme...
g.DrawString(konkretnyTab.Text, fontPisma, farbaPisma, obdlznikDanehoTabu, formatTextu);
// mame co som chcel
btw: len otázkaa:
aké označenie má základná farba winForm? lebo som ju nevedel nájsť