2010-11-18 14 views
1

Şu anda "büyük" WinForms-Project için küçük bir yardımcı uygulama yazıyorum. Bu küçük uygulamada, üzerinde birkaç Düğme bulunan bir UserControl gösteriyorum. Şimdi standart metin-düğme-marjları var.ButtonText'in Marjini/Dolgusunu Değiştirme

Demek Düğmeler şuna benzer olmasındandır:

~~~~~~~~~~~~~
~                                         ~
~   ButtonText     ~
~                                             ~
~~~~~~~~~~~~~

Ama bunu istiyorum e ButtonText, düğmelerini neredeyse "dokunur". Başka bir deyişle: ButtonText ve Buttonbounds arasındaki standart alan ihtiyaçlar için çok büyük. Bu davranışı değiştirmek mümkün mü?

cevap

1

Düğme düzenini gereksinimlerinize göre denetlemek için düğme üzerindeki boya olayını geçersiz kılabilir ve düzenli dize çizimiyle birlikte ControlPaint.DrawButton(...) kullanabilirsiniz. Düğmeyi doğru duruma getirmek için MoseDown, MouseUp, vb.

+0

En azından benim için çalıştı, hatta düğmeye fazla "alan" kazanmadığınızı fark ettim. Çok yazık... – basti

0

Bunu başarmak için, yuvalanmış bir düğme içeren bir UserControl oluşturabilir, daha sonra UserControl davranışınızı geçersiz kılabilir, böylece otomatik boyutlarda, düğmenin normalde gerektirdiği boyuttan daha küçük boyutlarda olmasını ve böylece düğmeye basmayı zorlayabilirsiniz. metin kenara daha yakın oturacak. Ancak, metnin tüm DPI ayarları için göründüğünden emin olmak için bazı deneme sürümlerini kullanmanız gerekir.

Bunun yerine, ToolStripButtons yerine, normal düğmeler gibi görünmelerini sağlayan uygun bir oluşturucu kullanmayı düşünebilirsiniz. Bunlar genellikle daha küçüktür ve ne kadar özelleştirme sağladığınıza bağlı olarak, düğmedeki metnin dolgu ve kenar boşlukları üzerinde daha fazla kontrole sahip olmalısınız.