Saya mencoba untuk mengarahkan kontrol ke kanan di a StatusStrip. Bagaimana saya bisa melakukan itu?
Saya tidak melihat properti untuk disetel pada ToolStripItemkontrol yang menentukan kesejajaran fisiknya pada induk StatusStrip.
Saya mencoba untuk mengarahkan kontrol ke kanan di a StatusStrip. Bagaimana saya bisa melakukan itu?
Saya tidak melihat properti untuk disetel pada ToolStripItemkontrol yang menentukan kesejajaran fisiknya pada induk StatusStrip.
Jawaban:
Ditemukan melalui forum MSDN segera setelah memposting :)
Anda dapat menggunakan a ToolStripLabelto pseudo right align control dengan menyetel Textproperti ke string.Emptydan menyetel Springproperti ke true. Ini akan menyebabkannya mengisi semua ruang yang tersedia dan mendorong semua kontrol ke kanan ToolStripLabelatas.
StatusStrip.LayoutStyle == ToolStripLayoutStyle.Table(yang merupakan default)
Alignmentproperti itu, karena tidak melakukan apa pun dalam aplikasi saya.
Sebagai catatan tambahan, ini disebabkan oleh fakta bahwa di Win32 API sel memiliki lebar tetap atau mengisi ruang yang tersisa -1
int statwidths[] = {100, -1};
SendMessage(hStatus, SB_SETPARTS, sizeof(statwidths)/sizeof(int), (LPARAM)statwidths);
SendMessage(hStatus, SB_SETTEXT, 0, (LPARAM)"Hi there :)");
Jika memori melayani saya dengan benar, Anda hanya dapat memiliki satu sel isian (-1) per bilah status.
Anda juga bisa menambahkan sel tengah ketiga dan memberi ini properti isian untuk mendapatkan StatusBar yang tampak lebih konsisten. Konsisten karena Message memiliki inset di kiri kanan di tempat yang Anda harapkan. Sedikit seperti tembakan mspaint yang ditemukan di halaman MSDN untuk StatusBars
Saya suka pendekatan kreatifnya: D
Anda dapat menampilkan Buttondi akhir StatusStripdengan menggunakan logika di bawah ini.
ToolstripLabelkeStatusStripstring.EmptyPaddinguntukToolstripLabelSebagai contoh:
this.toolStripStatusLabel1.Padding = new Padding((int)(this.Size.Width - 75), 0, 0, 0);
Saya menemukan bahwa Anda dapat mengatur Tata Letak StatusStrip ke HorizontalStackWithOverflow. Kemudian, untuk setiap kontrol pada StatusStrip yang Anda inginkan di sisi kanan, atur kontrol Alignment ke Kanan.
Saya lebih suka ini karena Anda tidak memerlukan kontrol tambahan atau dummy untuk menyelaraskan.
Jika Anda menyetel properti Spring kontrol label strip status ke true, maka label tersebut akan menggunakan ruang apa pun yang tidak digunakan oleh kontrol lain di StatusStrip.
Saya menemukan cara umum untuk mengatur lokasi kontrol StatusStrip. Anda dapat menampilkan Tombol di posisi mana pun StatusStripdengan menggunakan langkah-langkah di bawah ini.
Tetapkan teks sebagai jumlah spasi yang sesuai
toolStripStatusLabel1.Text = "";
Jika tata letak bukan yang Anda inginkan, lanjutkan ke langkah 2 untuk mengubah jumlah ruang toolStripStatusLabel1.Text, jika tidak, pekerjaan telah selesai.
Setel properti strip alat RightToLeft ke True.