Bir StatusStrip'te denetimleri nasıl doğru hizalayabilirim?


93

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.

Doğru hizalanmış Mesajlar açılır menüsünü nasıl elde ederim? http://i.friendfeed.com/ed90b205f64099687db30553daa79d075f280b90


4
Spring özelliği true olarak ayarlanmış bir etiket araç çubuğu öğesi oluşturun. Ayrıntılar: dotnetperls.com/statusstrip (PS Evet, bunun eski bir soru olduğunu biliyorum.)
Nick Alexeev

Yanıtlar:


230

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.


28
Bu çalışacaktır SADECE eğer StatusStrip.LayoutStyle == ToolStripLayoutStyle.Table(varsayılan bir olan)
AZ.

14
Güzel. Her iki tarafında Yay bulunan bir StatusStripLabel kontrolleri
ortalıyor

Keşke bunu yapmanın "gerçek" bir yolu olsaydı, ama bu işe yarıyor, teşekkürler. AlignmentMülkün ne yaptığını merak ediyorum , çünkü başvurumda hiçbir şey yapmadı.
TheGateKeeper

2
Alignment özelliğinin ne olduğunu merak ediyorum, böyle bir özellik görmüyorum.
TaW

Bu, "İlkbahar" etiketinden sonra yalnızca bir öğeye izin verir, diğerleri görünmez, bunun yerine @VBobCat yöntemini kullanın.
Pablo Carrasco Hernández

14

Benim için iki basit adım attı:

  1. Set MyRightIntendedToolStripItem.AlignmentiçinRight
  2. Set MyStatusStrip.LayoutStyleiçinHorizontalStackWithOverflow

5

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


Bu, tam olarak yönetilen kod olan StatusStrips için değil, StatusBars için geçerlidir.
Filip Navara

3

Aşağıdaki mantığı kullanarak Buttonsonunu görüntüleyebilirsiniz StatusStrip.

  1. Bir ekleme ToolstripLabeliçinStatusStrip
  2. Metni şu şekilde ayarla string.Empty
  3. Set PaddingiçinToolstripLabel

Örneğin:

this.toolStripStatusLabel1.Padding = new Padding((int)(this.Size.Width - 75), 0, 0, 0);

üçüncü bir orta hücre ekleyin ve buna dolgu özelliğini verin, böyle bir özellik görmüyorum.
TaW

2

Bir Toolstrip etiketi tutun, Spring özelliğini true olarak ayarlayın ve BottomLeft'te etiket hizalama metni için ayarlayın


1

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.


0

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.


Bu cevap zaten verildi. Böylesine eski bir soruyu çok sayıda cevapla cevaplarken, bunu daha önce kontrol etmeniz gerekir.
marsh-wiggle

-2

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 .

  1. StatusStrip'e bir ToolstripLabel ekleyin
  2. Metni uygun bir alan miktarı olarak ayarlayın.

    toolStripStatusLabel1.Text = "";

  3. 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.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.