Aku sedang membangun sebuah aplikasi di mana saya harus menangkap beberapa nilai-nilai dan membangun sebuah teks dengan mereka: Name
, Age
, dll
Outputnya akan berupa teks biasa menjadi a TextBox
.
Saya mencoba untuk membuat informasi tersebut muncul dalam bentuk columns
, oleh karena itu saya mencoba untuk memisahkan mereka dengan tab
membuatnya lebih jelas.
Misalnya, alih-alih memiliki:
Ann 26
Sarah 29
Paul 45
Saya ingin ditampilkan sebagai:
Ann tab 26 Sarah tab 29 Paul tab 45
Adakah tip tentang cara insert
membuka tab pada teks saya?
Jawaban:
Coba gunakan
\t
karakter di string Andasumber
Hazar benar dengan miliknya
\t
. Berikut daftar lengkap karakter pelarian untuk C #:\'
untuk satu kutipan.\"
untuk kutipan ganda.\\
untuk backslash.\0
untuk karakter nol.\a
untuk karakter lansiran.\b
untuk backspace.\f
untuk umpan formulir.\n
untuk jalur baru.\r
untuk pengembalian kereta.\t
untuk tab horizontal.\v
untuk tab vertikal.\uxxxx
untuk nilai hex karakter unicode (misalnya\u0020
).\x
sama dengan\u
, tetapi Anda tidak perlu memimpin nol (mis\x20
.).\Uxxxxxxxx
untuk nilai hex karakter unicode (diperlukan bentuk yang lebih panjang untuk menghasilkan pengganti).sumber
Ini juga dapat berguna untuk digunakan
String.Format
, misalnyasumber
sumber
Ada beberapa cara untuk melakukannya. Yang paling sederhana adalah menggunakan
\t
teks Anda. Namun, mungkin itu\t
tidak berfungsi dalam beberapa situasi, sepertiPdfReport
paket nuget.sumber
\t
tidak berfungsi. ;)Menggunakan
Microsoft Winform controls
, tidak mungkin untuk menyelesaikan masalah Anda dengan benar tanpa sedikit solusi yang akan saya jelaskan di bawah ini.MASALAH
Masalah dalam menggunakan secara sederhana
"\t"
atauvbTab
adalah bahwa ketika lebih dari satu TextBox ditampilkan dan penyelarasan itu harus dihormati untuk semua TextBox, HANYA"\t"
atauvbTab
solusi akan menampilkan sesuatu yang TIDAK SELALU selaras dengan benar.Contoh di VB.Net:
akan ditampilkan
seperti yang Anda lihat,
age
nilai untukFrançois-Victor
bergeser ke kanan dan tidak selaras denganage
nilai dua TextBox lainnya.LARUTAN
Untuk mengatasi masalah ini, Anda harus mengatur posisi Tab menggunakan
SendMessage()
fungsi API user32.dll tertentu seperti yang ditunjukkan di bawah ini.dan Formulir berikut akan ditampilkan
Anda dapat melihat bahwa sekarang, semua nilai disejajarkan dengan benar :-)
CATATAN
Multiline
properti TextBox harus disetel ke True . Jika properti ini disetel ke False, Tab diposisikan seperti sebelumnya.Bagaimana
AcceptsTab
properti ditugaskan tidak penting (saya telah menguji).Pertanyaan ini sudah ditangani di StackOverflow
Perhatian: Unit mesure untuk posisi Tab bukan karakter tetapi sesuatu yang tampaknya 1/4 karakter. Itu sebabnya saya kalikan panjangnya dengan 4.
C # SOLUSI
sumber
Ini berfungsi dengan baik, tetapi Anda harus memiliki font satu spasi.
sumber
Saat menggunakan string literal (mulai dengan @ ") ini mungkin lebih mudah
Akan menghasilkan
Apple:<tab>Bob
sumber
Selain jawaban di atas, Anda dapat menggunakan PadLeft atau PadRight:
Ini akan mengisi string dengan spasi ke kiri atau kanan.
sumber