2011-10-09 54 views
0

我的WinForm應用程序中有一個純文本框控件,並且我輸入了一個混合了英文和波斯文字符(LTR和RTL混合)的字符串。當TextBox RightToLeft屬性設置爲Yes時,它可以在UI上正常工作,但是當我得到TextBox的Text屬性時,該字符串不是控件顯示的內容,而是完全不同/錯誤的。TextBox控件中的混合LTR和RTL文本

下面是文本在Textbox控件(右)內的外觀以及Text屬性返回的內容(顯示在MessageBox中)的屏幕截圖。

enter image description here

我該如何解決這個問題?我期望Text屬性返回與UI上顯示的內容相同的內容。

+0

Text屬性不關心從右到左的順序,它純粹是一個渲染工件。您從消息框中獲得意外輸出,因爲它呈現從左到右。 –

回答

0

你可以通過MessageBoxOptions.RtlReading | MessageBoxOptions.RightAlignMessageBox.Showoptions參數有消息框都對齊了文本的權利,並渲染其文本從右到左整個消息框:

MessageBox.Show("تست English-mixed جمله ...", 
       "عنوان Title", 
       MessageBoxButtons.OK, 
       MessageBoxIcon.None, 
       MessageBoxDefaultButton.Button1, 
       MessageBoxOptions.RtlReading | MessageBoxOptions.RightAlign); 

結果: Sample Output