PDA

View Full Version : سوال: عمودی شدن تکست باکس



sini65
چهارشنبه 08 مرداد 1393, 11:07 صبح
سلام دوستان
من یک تکست باکس دارم چطوری میتونم مثل شکل زیر درستش بکنم؟

121728

fmehrvarzi
چهارشنبه 08 مرداد 1393, 11:35 صبح
این مقاله را نگاه کنید تکس باکس نیست ولی با گرافیک اومده متن را عمودی می کند
http://msdn.microsoft.com/en-us/library/da9f790s(v=vs.110).aspx


http://i.msdn.microsoft.com/dynimg/IC67983.png

sini65
چهارشنبه 08 مرداد 1393, 12:22 عصر
این مقاله را نگاه کنید تکس باکس نیست ولی با گرافیک اومده متن را عمودی می کند
http://msdn.microsoft.com/en-us/library/da9f790s(v=vs.110).aspx


http://i.msdn.microsoft.com/dynimg/IC67983.png


من بخواهم داخل تکست باکس بذارم چیکار کنم؟

sini65
چهارشنبه 08 مرداد 1393, 12:28 عصر
من بخواهم داخل تکست باکس بذارم چیکار کنم؟
این خطاروهم میده
Error 1 'System.EventArgs' does not contain a definition for 'Graphics' and no extension method 'Graphics' accepting a first argument of type 'System.EventArgs' could be found (are you missing a using directive or an assembly reference?) G:\naghsh\naghh\anh.cs 41 15 naghsheh

aliagamon
چهارشنبه 08 مرداد 1393, 12:49 عصر
والا واسه انگلیسی راحت تره چون پیوسته نداره خیلی راحت میتونین از richtextbox ارث ببرین و تو رویداد keydown بیاین حرف وارد شده رو بگیرین و با روش بالا تو ی bitmap بنویسید و bitmap رو به عنوان عکس به richtextbax (تو خط بعدی) اضافه کنین ... واسه فارسی باید چندین شرط هم تعریف کنید که اگه حرف به حرف بعدی پیوسته هست bitmap فعلی رو پاک کنه و به صورت پیوسته بنویسش بعدش حرف بعدی رو draw کنه ...
و یه متغییر هم تعریف کنین که بیاد متن اصلی رو به صورت string نگه داره که داشته باشین برای استفاده در خود برنامه...
البته توجه کنین که رویداد های ctrl+c و ctrl+v رو شبیه سازی کنه (کاری نداره این تیکه شما بالایی رو اجرا کنین این تیکه 5-6 خط میشه ...
در کل بهتره برین با wpf کار کنین چون اینکار توش خیلی راحت امکان پذیره !!

sini65
چهارشنبه 08 مرداد 1393, 12:59 عصر
والا واسه انگلیسی راحت تره چون پیوسته نداره خیلی راحت میتونین از richtextbox ارث ببرین و تو رویداد keydown بیاین حرف وارد شده رو بگیرین و با روش بالا تو ی bitmap بنویسید و bitmap رو به عنوان عکس به richtextbax (تو خط بعدی) اضافه کنین ... واسه فارسی باید چندین شرط هم تعریف کنید که اگه حرف به حرف بعدی پیوسته هست bitmap فعلی رو پاک کنه و به صورت پیوسته بنویسش بعدش حرف بعدی رو draw کنه ...
و یه متغییر هم تعریف کنین که بیاد متن اصلی رو به صورت string نگه داره که داشته باشین برای استفاده در خود برنامه...
البته توجه کنین که رویداد های ctrl+c و ctrl+v رو شبیه سازی کنه (کاری نداره این تیکه شما بالایی رو اجرا کنین این تیکه 5-6 خط میشه ...
در کل بهتره برین با wpf کار کنین چون اینکار توش خیلی راحت امکان پذیره !!

متوجه نشدم اگر کد داری بهم بده

sini65
چهارشنبه 08 مرداد 1393, 13:44 عصر
باتشکر ازهمه دوستان کدشو بدست اوردم
private void panel18_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.FillRectangle(Brushes.Coral, ((Panel)sender).ClientRectangle);
string txt = "قرائت ششم";
Font f = new Font("tahoma", 19);
SizeF szF = g.MeasureString(txt, f);
g.TranslateTransform((float)((Panel)sender).Client Rectangle.Width / (float)2 + szF.Height / (float)2, (float)((Panel)sender).ClientRectangle.Height / (float)2 - (float)szF.Width / (float)2);
g.RotateTransform(90);
g.DrawString(txt, f, Brushes.Black, 0, 0);
f.Dispose();
}

امیر مهرشاد
چهارشنبه 08 مرداد 1393, 22:21 عصر
باتشکر ازهمه دوستان کدشو بدست اوردم
private void panel18_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.FillRectangle(Brushes.Coral, ((Panel)sender).ClientRectangle);
string txt = "قرائت ششم";
Font f = new Font("tahoma", 19);
SizeF szF = g.MeasureString(txt, f);
g.TranslateTransform((float)((Panel)sender).Client Rectangle.Width / (float)2 + szF.Height / (float)2, (float)((Panel)sender).ClientRectangle.Height / (float)2 - (float)szF.Width / (float)2);
g.RotateTransform(90);
g.DrawString(txt, f, Brushes.Black, 0, 0);
f.Dispose();
}

کو تکس باکس عمودیت ؟