C#文本框中从右向左
我尝试移动文本框,用于Rss更新,但问题是Rss文本也是希伯来语的英语文本和数字,所以每次达到这个数字,它就开始发疯:) Exmaple Rss=“*ynet-מ1489;קםם*ynet*ב1497;ׯׯרפ:נ המריא מסעודיה לישראל * 15 שנות מאסר לבן ברדה שהרג אדם בקטטה בבת ים לפני כארבע שנים * תאילנד: 24 פצועים בפיצוץ בבית חולים בבנגקוק * עשרות אסירים ביטחוניים ששובתי רעב ופונו לבתי חולים החוזרו לכלא * בשל ביקור טראמפ: יתוגברו הרכבות לירושלים וממנה * צפון קוריאה: מסוגלים להתחיל בייצור המוני של טיל בליסטי שיכול להגיע ליפן * דיווח לבנוני: טראמפ וא-סיסי סיכמו על פסגת שלום אזורית בשבועות הקרובים * דו\"ח: יותר ממאה אלף עובדי ציבור פוטרו בטורקיה מאז ניסיון ההפיכה * התחזית: חם ויבש 2014年9月月月月月日,在本月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月日日日日日日日的的的的的日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日的的的的的的的的数数数数数数数数数数数数数数数数数数数数数数数数数数数数数数数数数数数数"C#文本框中从右向左,c#,wpf,textbox,rss,hebrew,C#,Wpf,Textbox,Rss,Hebrew,我尝试移动文本框,用于Rss更新,但问题是Rss文本也是希伯来语的英语文本和数字,所以每次达到这个数字,它就开始发疯:) Exmaple Rss=“*ynet-מ1489;קםם*ynet*ב1497;ׯׯרפ:נ המריא מסעודיה לישראל * 15 שנות מאסר לבן ברדה שהרג אדם בקטטה בבת ים לפני כארבע שנים * תאילנד: 24 פצועים בפיצוץ בבית חולים בבנגקוק * עשרות אסיר
当然,有一个Dispatcher每隔几分钟就会触发Update_Ynet_Rss函数经过一番思考,我发现了问题..下面是解决方案:
public void Update_Ynet_Rss()
{
if(Ynet_Rss.Text == "")
{
Run_Ynet_Rss();
}
// Ynet_Rss.Text = Ynet_Rss.Text.Substring(0, Ynet_Rss.Text.Length-1);
string s = Ynet_Rss.Text;
// MessageBox.Show("Index = " + s.IndexOf("מבזקים"));
if (s[0] >= 'א' && s[0] <= 'ת')
{
string tmp = "";
string tmp2 = "";
//Ynet_Rss.Text = Cutting(Ynet_Rss.Text, 0, s.IndexOf(" "));
int EndIndex = -1;
for (int i = 0; i < s.Length; i++)
{
if ((s[i] >= 'a' && s[i] <= 'z') || (s[i] >= 'A' && s[i] <= 'Z'))
{
EndIndex = i;
//MessageBox.Show("EndIndex = " + EndIndex + "s[i] = " + s[i].ToString());
break;
}
}
if(EndIndex == -1)
{
// MessageBox.Show("EndIndex = " + EndIndex);
EndIndex = s.Length;
}
//tmp = Ynet_Rss.Text.Substring(Ynet_Rss.Text.IndexOf(" "));
tmp = Ynet_Rss.Text.Substring(EndIndex);
tmp2 = Ynet_Rss.Text.Substring(0, EndIndex);
// MessageBox.Show("V1 = " + tmp2);
tmp2 = Ynet_Rss.Text.Substring(0, tmp2.Length-1);
// MessageBox.Show("V2 = " + tmp2);
Ynet_Rss.Text = tmp2 + tmp;
}
else
{
Ynet_Rss.Text = Ynet_Rss.Text.Substring(1);
}
Ynet_Rss.TextAlignment = TextAlignment.Left;
}
public void Update\u Ynet\u Rss()
{
如果(Ynet_Rss.Text==“”)
{
运行_Ynet_Rss();
}
//Ynet_Rss.Text=Ynet_Rss.Text.Substring(0,Ynet_Rss.Text.Length-1);
字符串s=Ynet_Rss.Text;
//MessageBox.Show(“Index=“+s.IndexOf”(“Index”);
如果(s[0]>=“א”&&s[0]=“a”&&s[i]=“a”&&s[i]只是一个毫无根据的观点:试试RichTextBox。我怀疑问题在于编码。希伯来语是unicode(两个字节),而数字是ASCII(一个字节).Character/strings是两字节对象,在类中具有私有属性,用于指示字符是一个字节还是两个字节。RSS函数未正确处理编码。
public void Update_Ynet_Rss()
{
if(Ynet_Rss.Text == "")
{
Run_Ynet_Rss();
}
// Ynet_Rss.Text = Ynet_Rss.Text.Substring(0, Ynet_Rss.Text.Length-1);
string s = Ynet_Rss.Text;
// MessageBox.Show("Index = " + s.IndexOf("מבזקים"));
if (s[0] >= 'א' && s[0] <= 'ת')
{
string tmp = "";
string tmp2 = "";
//Ynet_Rss.Text = Cutting(Ynet_Rss.Text, 0, s.IndexOf(" "));
int EndIndex = -1;
for (int i = 0; i < s.Length; i++)
{
if ((s[i] >= 'a' && s[i] <= 'z') || (s[i] >= 'A' && s[i] <= 'Z'))
{
EndIndex = i;
//MessageBox.Show("EndIndex = " + EndIndex + "s[i] = " + s[i].ToString());
break;
}
}
if(EndIndex == -1)
{
// MessageBox.Show("EndIndex = " + EndIndex);
EndIndex = s.Length;
}
//tmp = Ynet_Rss.Text.Substring(Ynet_Rss.Text.IndexOf(" "));
tmp = Ynet_Rss.Text.Substring(EndIndex);
tmp2 = Ynet_Rss.Text.Substring(0, EndIndex);
// MessageBox.Show("V1 = " + tmp2);
tmp2 = Ynet_Rss.Text.Substring(0, tmp2.Length-1);
// MessageBox.Show("V2 = " + tmp2);
Ynet_Rss.Text = tmp2 + tmp;
}
else
{
Ynet_Rss.Text = Ynet_Rss.Text.Substring(1);
}
Ynet_Rss.TextAlignment = TextAlignment.Left;
}