ฉันกำลังพยายามจัดแนวการควบคุมในไฟล์StatusStrip
. ฉันจะทำเช่นนั้นได้อย่างไร?
ฉันไม่เห็นคุณสมบัติที่จะตั้งค่าบนToolStripItem
ตัวควบคุมที่ระบุการจัดตำแหน่งทางกายภาพบนพาเรนStatusStrip
ต์
ฉันกำลังพยายามจัดแนวการควบคุมในไฟล์StatusStrip
. ฉันจะทำเช่นนั้นได้อย่างไร?
ฉันไม่เห็นคุณสมบัติที่จะตั้งค่าบนToolStripItem
ตัวควบคุมที่ระบุการจัดตำแหน่งทางกายภาพบนพาเรนStatusStrip
ต์
คำตอบ:
พบผ่านฟอรัม MSDN เกือบจะทันทีหลังจากโพสต์ :)
คุณสามารถใช้ToolStripLabel
เพื่อหลอกควบคุมชิดขวาโดยการตั้งค่าText
คุณสมบัติการstring.Empty
และการตั้งค่าคุณสมบัติการSpring
true
สิ่งนี้จะทำให้เต็มพื้นที่ว่างทั้งหมดและดันตัวควบคุมทั้งหมดไปทางขวาของToolStripLabel
โอเวอร์
StatusStrip.LayoutStyle == ToolStripLayoutStyle.Table
(ซึ่งเป็นค่าเริ่มต้น)
Alignment
ทรัพย์สินทำอะไรเพราะมันไม่ได้ทำอะไรเลยในใบสมัครของฉัน
สำหรับฉันใช้สองขั้นตอนง่ายๆ:
MyRightIntendedToolStripItem.Alignment
เป็นRight
MyStatusStrip.LayoutStyle
เป็นHorizontalStackWithOverflow
ตามหมายเหตุเพิ่มเติมนี้เกิดจากข้อเท็จจริงที่ว่าใน Win32 API เซลล์มีความกว้างคงที่หรือเติมช่องว่างที่เหลือ -1
int statwidths[] = {100, -1};
SendMessage(hStatus, SB_SETPARTS, sizeof(statwidths)/sizeof(int), (LPARAM)statwidths);
SendMessage(hStatus, SB_SETTEXT, 0, (LPARAM)"Hi there :)");
หากหน่วยความจำให้บริการฉันอย่างถูกต้องคุณสามารถมีเซลล์เติมได้เพียงหนึ่งเซลล์ (-1) ต่อแถบสถานะ
คุณยังสามารถเพิ่มเซลล์ตรงกลางที่สามและให้คุณสมบัตินี้เพื่อให้ได้ StatusBar ที่ดูสอดคล้องกันมากขึ้น สอดคล้องกันเนื่องจาก Messages มีสิ่งที่ใส่เข้าไปทางด้านซ้ายซึ่งคุณคาดหวังได้ คล้ายกับภาพ mspaint ที่พบในหน้า MSDN สำหรับ StatusBars
ฉันชอบความคิดสร้างสรรค์แม้ว่า: D
คุณสามารถแสดงต่อButton
ท้ายStatusStrip
โดยใช้ตรรกะด้านล่าง
ToolstripLabel
ไฟล์StatusStrip
string.Empty
Padding
สำหรับไฟล์ToolstripLabel
ตัวอย่างเช่น:
this.toolStripStatusLabel1.Padding = new Padding((int)(this.Size.Width - 75), 0, 0, 0);
เก็บป้ายชื่อ Toolstrip ตั้งค่าคุณสมบัติ Spring เป็นจริงและสำหรับการจัดแนวป้ายข้อความใน BottomLeft
ฉันพบว่าคุณสามารถตั้งค่า StatusStrip Layout เป็น HorizontalStackWithOverflow จากนั้นสำหรับแต่ละตัวควบคุมบน StatusStrip ที่คุณต้องการทางด้านขวาให้ตั้งค่าการจัดแนวควบคุมไปทางขวา
ฉันชอบสิ่งนี้ดีกว่าเนื่องจากคุณไม่ต้องการการควบคุมเพิ่มเติมหรือหลอกเพื่อจัดแนว
หากคุณตั้งค่าคุณสมบัติ Spring ของตัวควบคุมแถบสถานะเป็นจริงป้ายกำกับนั้นจะใช้พื้นที่ว่างที่ไม่ได้ใช้โดยคอนโทรลอื่นใน StatusStrip
ตั้งค่าคุณสมบัติแถบเครื่องมือ RightToLeft เป็น True