2012-09-09 11 views
12

Ekranın sol alt köşesinde bir form yerleştirmeye çalışıyorum (başlatma düğmesindeki) Bunu yapmaya çalışan aşağıdaki kodu kullanıyorum ama sadece ekranın çalışma alanı hesabı - bu yüzden formu sadece başlangıç ​​düğmesinin üzerinde konumlandırılmıştır:Pozisyonu ekranın sol alt köşesindeki winform

[Demo Screen](http://i.stack.imgur.com/9mTjj.png)

+4

Sen görev çubuğunu veya Başlat düğmesini çakışamaz. –

+5

Yazılımınızı yüklediysem ve başlat düğmesini kasten gizleyecek şekilde yerleştirdiysem hemen kaldıracağım. – Rotem

+1

@Hans Passant Cevap – user1559618

cevap

10

Screen.PrimaryScreen.Bounds özelliklerini ve this.TopMost = true numaralı telefonu kullanın. Bu çalışır:

int y = Screen.PrimaryScreen.Bounds.Bottom - this.Height; 
this.Location = new Point(0, y); 
this.TopMost = true; 
+0

Teşekkür ederim, evet bu işe yaradı, herkesin söylediği şeye rağmen :) – user1559618

+0

+1 ve resimdeki gibi çubuğa görev çubuğu yüksekliği de eklendi. – hamed

0
:

int x = Screen.PrimaryScreen.WorkingArea.Left + this.Width; 
int y = Screen.PrimaryScreen.WorkingArea.Bottom - this.Height; 
this.Location = new Point(x, y); 

bir demo/ekran ayrıca yapmak ne çalışıyorum göstermek için altındadır

Bu kodla deneyebilirsiniz

Rectangle workingArea = Screen.GetWorkingArea(this); 
this.Location = new Point(0, 
          workingArea.Bottom - Size.Height); 
+1

görev çubuğunun arkasına gidecek – TigOldBitties

3

Çalışma alanı genellikle herhangi bir görev çubuğunu, yerleştirilmiş pencereleri ve yuvalanmış araç çubuklarını hariç tutar. Screen.PrimaryScreen.Bounds'u kullanmanız, ekranınızın tam yüksekliğini ve genişliğini verir. aşağıdaki gibi

bir örnek kod: Bu en olası olarak genellikle görev çubuğu varsayılan olarak yukarıda yer almasını ayarlanır görev çubuğunun altında gösterecektir

public Form1() 
     { 
      InitializeComponent(); 
      Rectangle r = Screen.PrimaryScreen.WorkingArea; 
      this.StartPosition = FormStartPosition.Manual; 
      this.Location = new Point(0, Screen.PrimaryScreen.Bounds.Height - this.Height); 
      this.TopMost = true; 
     } 

. Windows XP'de bu seçeneği kapatmak için bir seçenek olduğunu hatırlıyorum.

DÜZENLEME: Eğer görev çubuğu pencerelerin arkasında gitmek yapabilirsiniz pencereler XP'de

. Bağlantıyı takip edin:

Ria'nın işaret ettiği gibi, this.TopMost'un doğru şekilde ayarlanması ve daha iyi bir seçenektir.

+0

Pencereyi, başlangıç ​​çubuğunun üstüne yerleştirmeyi ve bunun için kodunuzu nasıl arayacağımı düşünüyordum. StartPosition = FormStartPosition.Manual; eksik olduğum parça oldu ... Teşekkürler! – ChronoFish

0

Ria 's answer doğrudur ama görev çubuğu yüksekliğini eklemediniz.
size gösterilen görüntüde, bu kodu kullanmalısınız tam olarak ne isterseniz:

int nTaskBarHeight = Screen.PrimaryScreen.Bounds.Bottom - 
              Screen.PrimaryScreen.WorkingArea.Bottom; 
Rectangle workingArea = Screen.GetWorkingArea(this); 
this.Location = new Point(0, workingArea.Bottom - Size.Height + nTaskBarHeight); 
this.TopMost = true; 
İlgili konular