PDA

View Full Version : سوال: بزرگ تایت شدن حروف اول در کلمه(کاربردی برای همه)



c-sharp_South
یک شنبه 26 آذر 1391, 12:07 عصر
سلام دوستان.
قبلا یک برنامه ساده نوشته بودم که با تایمر میومد CapsLock رو خاموش رو روشن میکرد و در نتیجه
تایپ کردن اینجوری میشد:
SalAm KhoOBi cHe KhaBaR kojAeI tO
الان میخوام یک برنامه بنویسم که حروف اول کلمات رو بزرگ تایپ کنه و ربطی به تایمر نداشته باشه.
یعنی بعد از هر زدن Space اولین حرف بزرگ تایپ بشه.اینجوری:
Salam Khoobi Che Khabar Kojaei To
ممنون میشم دوستان راهنمایی کنن چطوری این رابطه رو برقرار کنم؟ :متفکر:
یا حق :قلب:

morteza271
یک شنبه 26 آذر 1391, 12:21 عصر
از این کد استفاده کنید :
private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
int SelectedIndex = textBox2.SelectionStart;
if (e.KeyCode == Keys.Space)
{
string[] strWord = textBox2.Text.Split(' ');
if (strWord.Length > 0)
{
for (int i = 0; i < strWord.Length; i++)
strWord[i] = strWord[i].Substring(0, 1).ToUpper() + strWord[i].Substring(1);
}
textBox2.Text = "";
for (int i = 0; i < strWord.Length; i++)
{
textBox2.Text += strWord[i] + " ";
}
textBox2.Text = textBox2.Text.Substring(0, textBox2.Text.Length - 1);
textBox2.SelectionStart = SelectedIndex;
}
}

c-sharp_South
یک شنبه 26 آذر 1391, 12:26 عصر
با تشکر مرتضی جان . کدتون رو تست کردم و کاملا درست بود. :قلب:
اما این کد مربوط به خود برنامه ی در حال اجرا میشه.
من میخوام برنامه ی ما که اجرا شد ، مثلا اگر در محیط یاهو بودیم و چت میکردیم هم حروف اول بزرگ تایپ بشه.

morteza271
یک شنبه 26 آذر 1391, 12:34 عصر
با تشکر مرتضی جان . کدتون رو تست کردم و کاملا درست بود. :قلب:
اما این کد مربوط به خود برنامه ی در حال اجرا میشه.
من میخوام برنامه ی ما که اجرا شد ، مثلا اگر در محیط یاهو بودیم و چت میکردیم هم حروف اول بزرگ تایپ بشه.
نمیدونستم منظورتون اینه.
ولی من در این زمینه زیاد کار نکردم که با نرم افزارهای دیگه در ارتباط باشم.
البته توی همین سایت چند مورد آموزش و نمونه برنامه دیدم برای ارتباط با برنامه های دیگر، جستجو کنید پیداشون می کنید.

c-sharp_South
یک شنبه 26 آذر 1391, 15:55 عصر
تشکر دوست عزیز.
فقط بحث این است که برنامه بتونه دکمه های زده شده روی کیبرد رو بخونه و کلیک Space رو شناسایی کنه و
بعد از Space حرف اول رو بزرگ تایپ کنه.
کسی دیگه ای اطلاعی نداره که بتونه در این مورد راهنمایی کنه ؟؟؟

Mahmoud Zaad
یک شنبه 26 آذر 1391, 16:41 عصر
سلام
کیبوردهای مجازی (Virtual Keyboard (https://www.google.com/search?q=Virtual+Keyboard&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a&channel=rcs#hl=en&client=firefox-a&hs=bTa&tbo=d&rls=org.mozilla:en-US%3Aofficial&channel=rcs&sclient=psy-ab&q=Virtual+Keyboard%2BC%23&oq=Virtual+Keyboard%2BC%23&gs_l=serp.3..0i30l5j0i5i30l5.4611.5925.1.7044.3.3. 0.0.0.0.419.1159.3-2j1.3.0.les%3B..0.0...1c.1.dg5l6_EF9OU&psj=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.&bvm=bv.1355325884,d.ZG4&fp=8987ce5915ab33a3&bpcl=39967673&biw=1152&bih=720)) از اینکارها می کنند!

veniz2008
یک شنبه 26 آذر 1391, 16:58 عصر
سلام. میتونید از کد زیر استفاده کنید :
ابتدا متد زیر رو در partial بنویسید:

public string UppercaseFirst(string s)
{
char[] a = s.ToCharArray();
a[0] = char.ToUpper(a[0]);
return new string(a);
}
حالا درون رویداد KeyDown مربوط به textbox کد زیر رو بنویسید :

if (e.KeyCode == Keys.Space)
{
string[] s = textBox1.Text.Split(' ');
for(int i = s.Length -1; i < s.Length; i++)
this.Text += " " + UppercaseFirst(s[i]);
}

morteza271
یک شنبه 26 آذر 1391, 18:32 عصر
سلام.
به این نمونه برنامه دقت کنید.
با استفاده از این نمونه برنامه می تونید تمام کلید هایی که فشرده میشه رو شناسایی کنید. به نظرم بتونید با استفاده ازش کارتون رو انجام بدین.
96785
موفق باشید