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 ToolStripLabel
ayarlayarak sağa yaslamak kontrollerini yalancı Text
mülkü string.Empty
ve ayar Spring
iç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)
Alignment
Mü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 Button
sonunu görüntüleyebilirsiniz StatusStrip
.
ToolstripLabel
içinStatusStrip
string.Empty
Padding
iç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
. StatusStrip
Aş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.