2009-06-10 16 views
8

Maximized olarak ayarlanmış bir formum var, ancak bir nedenden ötürü görev çubuğunu görmezden geliyor ve tüm ekranı en üst düzeye çıkarıyor. Bu tipik mi? Bir çözüm var mı?İzlenen ekran, görev çubuğunu yok sayar

Windows   XP'yi çift monitör ayarıyla çalıştırıyorum (ilk/birincil pencerede görev çubuğu).

+0

[ShowInTaskbar] (http://msdn.microsoft.com/en-us/library/system.windows.forms.form mı. showintaskbar.aspx) özellik False olarak ayarlanmış mı? – Shoban

+1

MaximizedBounds özelliğini atayın. –

cevap

6

Açıklamanın dışında bıraktığım bir şey - en üst düzeye çıkarma düğmesini kapatmıştım. Bu özelliği tekrar açmayı test ettiğimde, görev çubuğu tekrar ortaya çıktı. Görünüşe göre, bir maksimize düğmesini istemiyorsanız, kullanıcılarınızın uygulama ekranından bir şey görmesini istemediğiniz kiosk stili bir uygulama oluşturuyorsunuz. Tam olarak beklediğim gibi değil ama sanırım işe yarıyor. en düzeye çıkarma düğmesine yeniden etkinleştirmek için istemiyorsanız

3

Maksimize edilmeden önce form sınırını Yok olarak ayarlayın.

Bu kod tek bir monitörde çalışacak i şu anda bu yok çünkü

private void Form1_Load(object sender, EventArgs e) 
{ 
    this.FormBorderStyle = FormBorderStyle.None; 
    this.WindowState = FormWindowState.Maximized; 
} 

Ben çift monitör senaryoyu test etmedim. : P

DÜZENLEME: Ben "Maximized Ekran vazife sayar" alamadım. Ignores ne anlama geliyor?

Formunuzun görev çubuğunu kaplamasını ve ekranın tamamını doldurmasını istiyor musunuz?

+0

Bu, formunun tüm ekranı kapsadığı, hatta istemediği görev çubuğunu gizlediği anlamına gelir. –

+0

Buna eklemek için, formunun FormBorderStyle özelliğini kontrol etmeli ve FormBorderStyle.None olarak ayarlanmadığından emin olmalıdır. –

3

, el penceresinin boyutunu ayarlayabilirsiniz:

private void Maximize() 
{ 
    Screen screen = Screen.FromPoint(this.Location); 
    this.Size = screen.WorkingArea.Size; 
    this.Location = Point.Empty; 
} 

(WorkingArea uygulamalar tarafından kullanılabilecek ekranın alandır, maksimize ederken FormBorderStyle.None kullanıyorsanız görev çubuğu ve diğer araç çubuklarını)

+0

Çalışmıyor - sys menu maximize '' Maximize() 'metodunu çağırmıyor –

+1

@ZachSaw, tabi ki değil, neden olsun? Kendin aramak zorunda olduğun bir yöntem. –

+0

Bu, sysmenu açılır pencereniz olduğunda hiç azami durum olarak görünmüyor! –

12

hariç o zaman o görev çubuğunu kapsamaz emin olmak için çok basit:

this.MaximumSize = Screen.PrimaryScreen.WorkingArea.Size; 

it w Hasta muhtemelen diğer sınır stilleri için çalışır ve muhtemelen formunuzun görev çubuğunu kapsamadığından emin olmanın en temiz yoludur.

+5

Muhtemelen Screen.PrimaryScreen yerine 'Screen.FromControl (this)' kullanmalısınız. Kullanıcının birden fazla ekranı varsa, kontrolünüz mutlaka birincil ekranda olmayacaktır. –

+0

Ekranlar arasında çalışmaz. 'OnMove' formunda' MaximumSize' ayarını yaparsanız, ekranın genişliğini maksimuma çıkarılmamış modda sınırlayan bir formla sonuçlanırsınız (bu varsayılan davranış değildir). –

+1

Benim için çalışmadı –

2

Görev çubuğu sol, üst, alt ve sağ tarafa sabitlenebilir. Form görev çubuğunu gizler hiçbiri formu sınır stilini ayarladığınızda

 

...cut... 
    public partial class Form2 : Form 
    { 
     public Form2() 
     { 
      // set default start position to manual 
      this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; 


      // set position and size to the Form. 
      this.Bounds = Screen.PrimaryScreen.WorkingArea; 


     .... 
      InitializeComponent(); 
     } 

...cut... 
0

: Eğer yerleştirilmiştir görev olmadan ekranı kaplamış pencere istiyorsanız, bu kodu kullanın. Bunu aşmak için formun MaximumSize değerini manuel olarak ayarlamanız gerekir. Windows görev çubuğunu otomatik olarak gizlerse, form gizli görev çubuğunu bile kapsayacaktır! Bu konudan kurtulmak için, maksimum boyut yüksekliğini bir pikselle azaltın (görev çubuğunuz altta ise)!

 Me.MaximumSize = New Size(My.Computer.Screen.WorkingArea.Size.Width, _ 
            My.Computer.Screen.WorkingArea.Size.Height - 1) 
3

tek şey açıklamanın dışında kalan - ben büyütme düğmesini kapattı. Bu özelliği tekrar açmayı test ettiğimde, görev çubuğu tekrar ortaya çıktı. Görünüşe göre, bir maksimize düğmesini istemiyorsanız, kullanıcılarınızın uygulama ekranından bir şey görmesini istemediğiniz kiosk stili bir uygulama oluşturuyorsunuz. Tam olarak beklediğim gibi değil ama sanırım işe yarıyor.

Bu sorunu yaşadım ve Jeff'in yardımıyla çözdüm. İlk önce, windowstate değerini Maximized olarak ayarlayın. Ancak MaximizeBox'u devre dışı bırakmayın. Eğer MaximizeBox programlı yapmalıyım devre dışı istiyorsanız Ardından:

private void frmMain_Load(object sender, EventArgs e) 
{ 
    this.MaximizeBox = false; 
} 
İlgili konular