Bir denetimi doğru hizalamaya çalışıyorum StatusStrip. Bunu nasıl yapabilirim?
ToolStripItemÜst öğe üzerinde fiziksel hizalamalarını belirten denetimler üzerinde ayarlanacak bir özellik görmüyorum StatusStrip.
Bir denetimi doğru hizalamaya çalışıyorum StatusStrip. Bunu nasıl yapabilirim?
ToolStripItemÜst öğe üzerinde fiziksel hizalamalarını belirten denetimler üzerinde ayarlanacak bir özellik görmüyorum StatusStrip.
Yanıtlar:
Bunu yayınladıktan hemen sonra MSDN forumları aracılığıyla buldum :)
Bir kullanabilirsiniz ToolStripLabelayarlayarak sağa yaslamak kontrollerini yalancı Textmülkü string.Emptyve ayar Springiçin mülk true. Bu, tüm mevcut alanı doldurmasına ve tüm kontrolleri üst tarafın sağına itmesine neden olacaktır ToolStripLabel.
StatusStrip.LayoutStyle == ToolStripLayoutStyle.Table(varsayılan bir olan)
AlignmentMülkün ne yaptığını merak ediyorum , çünkü başvurumda hiçbir şey yapmadı.
Ek bir not olarak, bunun nedeni Win32 API'de bir hücrenin sabit genişlikte olması veya kalan alanı -1 doldurmasıdır.
int statwidths[] = {100, -1};
SendMessage(hStatus, SB_SETPARTS, sizeof(statwidths)/sizeof(int), (LPARAM)statwidths);
SendMessage(hStatus, SB_SETTEXT, 0, (LPARAM)"Hi there :)");
Bellek bana doğru hizmet veriyorsa, durum çubuğu başına yalnızca bir doldurma hücreniz (-1) olabilir.
Ayrıca, üçüncü bir orta hücre ekleyebilir ve daha tutarlı görünen bir Durum Çubuğu elde etmek için buna dolgu özelliğini verebilirsiniz. Tutarlıdır çünkü Mesajlar, beklediğiniz yerde sol sağ tarafında bir ek içerir. Durum Çubukları için MSDN sayfasında bulunan mspaint çekimine benziyor
Yine de yaratıcı yaklaşımı seviyorum: D
Aşağıdaki mantığı kullanarak Buttonsonunu görüntüleyebilirsiniz StatusStrip.
ToolstripLabeliçinStatusStripstring.EmptyPaddingiçinToolstripLabelÖrneğin:
this.toolStripStatusLabel1.Padding = new Padding((int)(this.Size.Width - 75), 0, 0, 0);
StatusStrip Düzenini HorizontalStackWithOverflow olarak ayarlayabileceğinizi öğrendim. Ardından, sağ tarafta olmasını istediğiniz StatusStrip üzerindeki her denetim için denetim Hizalama'yı Sağa ayarlayın.
Hizalamak için fazladan veya yapay kontrollere ihtiyacınız olmadığı için bunu daha çok seviyorum.
Bir durum şeridi etiket denetiminin Spring özelliğini true olarak ayarlarsanız, bu etiket StatusStrip'teki diğer denetimler tarafından kullanılmayan herhangi bir alanı kaplar.
Bir kontrolün yerini ayarlamanın genel bir yolunu buldum StatusStrip. StatusStripAşağıdaki adımları kullanarak Düğmeyi içindeki herhangi bir konumda görüntüleyebilirsiniz .
Metni uygun bir alan miktarı olarak ayarlayın.
toolStripStatusLabel1.Text = "";
Düzen istediğiniz gibi değilse, alan miktarını değiştirmek için 2. adıma gidin toolStripStatusLabel1.Text, aksi takdirde iş yapılmıştır.
RightToLeft araç şeridi özelliğini True olarak ayarlayın.