Chcę dodać przycisk zamykania do TabPages
z TabControl
. Staram ten kod i to działa dobrze z lewej strony do prawej TabControl:Przycisk Zamknij dla stron Tab od prawej do lewej TabControl C#
private Point _imageLocation = new Point(13, 5);
private Point _imgHitArea = new Point(13, 2);
this.tabControl2.DrawMode = System.Windows.Forms.TabDrawMode.OwnerDrawFixed;
tabControl2.DrawItem += TabControl2_DrawItem;
private void TabControl2_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
try
{
Image img = new Bitmap(GestionP.Properties.Resources.Close);
Rectangle r = e.Bounds;
r = this.tabControl2.GetTabRect(e.Index);
r.Offset(2, 2);
Brush TitleBrush = new SolidBrush(Color.Black);
Font f = this.Font;
string title = this.tabControl2.TabPages[e.Index].Text;
e.Graphics.DrawString(title, f, TitleBrush, new PointF(r.X, r.Y));
if (tabControl2.SelectedIndex >= 1)
{
e.Graphics.DrawImage(img, new Point(r.X + (this.tabControl2.GetTabRect(e.Index).Width - _imageLocation.X), _imageLocation.Y));
}
}
catch (Exception) { }
}
private void tabControl2_MouseClick(object sender, MouseEventArgs e)
{
TabControl tc = (TabControl)sender;
Point p = e.Location;
int _tabWidth = 0;
_tabWidth = this.tabControl2.GetTabRect(tc.SelectedIndex).Width - (_imgHitArea.X);
Rectangle r = this.tabControl2.GetTabRect(tc.SelectedIndex);
r.Offset(_tabWidth, _imgHitArea.Y);
r.Width = 16;
r.Height = 16;
if (tabControl2.SelectedIndex >= 1)
{
if (r.Contains(p))
{
TabPage TabP = (TabPage)tc.TabPages[tc.SelectedIndex];
tc.TabPages.Remove(TabP);
}
}
}
Ale kiedy ustawić właściwość RightToLeftLayout = true
i RightToLeft = true
to nie działa, TabPage
tytuły nie pojawiają, a także przycisk zamykania.
Jak naprawić kod w sposób, który akceptuje właściwość RightToLeft
?
Rysując na TabControl, oznacza to, że trzeba przetwarzać 'własność RightToLeft' przez siebie, spróbuj edycji kodu w' TabControl2_DrawItem' – J3soon
gdzi edytować? próbowałem zmienić r.offset, ale to działa tylko dla pierwszej zakładki – user4340666
w bloku 'TabControl2_DrawItem', dodaj warunek' if (RightToLeft) ' – J3soon