PDA

View Full Version : درخواست : بررسی کد گرفتن تعداد محدود کارکتر از TextBox



ya30ien2
شنبه 20 آبان 1391, 10:01 صبح
سلام
دوستان من کدی نوشتم که تعداد حروف رو از تکست باکس بگیره تا زمانی که به ** نرسیده و بعد ...
لطفا کد رو بررسی کنید و بگید مشکل من از کجاست


a = false;
for (int i = 0; i < textBox1.Text.Length; i++)
{
if (i >=2 )
{
if (textBox1.Text.Substring(i, i+1) != "**" && a != true)
{
label1.Text += textBox1.Text[i].ToString();
}
else if (textBox1.Text.Substring(i, i) == "**")
{
label1.Text += "...";
a = true;
}
}

}

matin.soft
شنبه 20 آبان 1391, 10:30 صبح
سلام دوست عزیز
شما در else if (textBox1.Text.Substring(i, ) == "**") دارید یک کاراکتر رو از تکست باکس با دو کاراکتر مقایسه می کنید که هیچ وقت شرط قبول نمیشه. پس این قسمت رو اصلاح کنید.
موفق باشید.

ya30ien2
شنبه 20 آبان 1391, 11:01 صبح
سلام دوست عزیز
شما در else if (textBox1.Text.Substring(i, ) == "**") دارید یک کاراکتر رو از تکست باکس با دو کاراکتر مقایسه می کنید که هیچ وقت شرط قبول نمیشه. پس این قسمت رو اصلاح کنید.
موفق باشید.
آره اینو جا انداختم وسط تست بودم به هر روشی انجام دادم نشد
اگه امکان داره بیشتر بررسیش کنید

ya30ien2
شنبه 20 آبان 1391, 11:09 صبح
در کل دستور
label1.Text = textBox1.Text.Substring(3, 4);
خارج از حلقه درست جواب میده ولی داخل حلقه جواب نمیده

ya30ien2
شنبه 20 آبان 1391, 15:29 عصر
کسی نیست منو راهنمایی کنه ؟

mansourm
شنبه 20 آبان 1391, 16:47 عصر
دوست عزیز برای مقایسه دو رشته باید از دستور زیر استفاده کنید شرط هاتو به صورت زیر تغییر بده



if ((string.Compare(textBox1.Text.Substring(i, 2), ("**")) != 0) && (a != true))


و قسمت else if را به صورت زیر بنویسید



else if (string.Compare(textBox1.Text.Substring(i, 2), "**") == 0)



اگه مشکلت حل نشد - دقیقاهدف برنامه رو بگو تا کد کاملو برات بزارم

ya30ien2
شنبه 20 آبان 1391, 17:57 عصر
دوست عزیز برای مقایسه دو رشته باید از دستور زیر استفاده کنید شرط هاتو به صورت زیر تغییر بده

و قسمت else if را به صورت زیر بنویسید


اگه مشکلت حل نشد - دقیقاهدف برنامه رو بگو تا کد کاملو برات بزارم
دوست عزیز جواب نداد
از if ارور میگیره

veniz2008
شنبه 20 آبان 1391, 18:50 عصر
سلام. اگه میخوای چک کنی که زمانیکه دو کاراکتر * وارد بشه یه عمل مشخص انجام بشه خوب میتونی از رویداد textchange خود تکست باکس مربوطه استفاده کنی:

private void textBox1_TextChanged(object sender, EventArgs e)
{
if(textBox1.Text.Contains("**"))
MessageBox.Show("exist **");
}
مگر اینکه منظور دیگه ای داشته باشی.

mansourm
شنبه 20 آبان 1391, 19:13 عصر
این کد کامل که خودم توی رویداد یک button نوشتم و البته سه عدد textbox روی فرار دادم




private void button1_Click(object sender, EventArgs e)
{
bool a = false;
for (int i = 0; i < textBox1.Text.Length; i++)
{
if (i <= textBox1.Text.Length-2)
{
if ((string.Compare(textBox1.Text.Substring(i, 2), ("**")) != 0) && (a != true))
{
textBox2.Text += textBox1.Text[i].ToString();
if(i==textBox1.Text.Length-2)
textBox2.Text += textBox1.Text[i+1].ToString();
}
else if (string.Compare(textBox1.Text.Substring(i, 2), "**") == 0)
{
textBox3.Text= "...";
a = true;
}
}

}
}

ya30ien2
شنبه 20 آبان 1391, 19:58 عصر
سلام. اگه میخوای چک کنی که زمانیکه دو کاراکتر * وارد بشه یه عمل مشخص انجام بشه خوب میتونی از رویداد textchange خود تکست باکس مربوطه استفاده کنی:

private void textBox1_TextChanged(object sender, EventArgs e)
{
if(textBox1.Text.Contains("**"))
MessageBox.Show("exist **");
}
مگر اینکه منظور دیگه ای داشته باشی.
دوست عزیز ممنون
من واسه نمایش اخبار در صفحه اول وب میخواستم همچین کارب بکنم که منصور جون اجامش دادن