Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,022

HOME > .NET Framework > Forum > C# WinApp จะใช้ DrawString ยังไงให้ตัวหนังสือ ขยายออก แล้วก็ชิดขวา ด้วยครับ



 

C# WinApp จะใช้ DrawString ยังไงให้ตัวหนังสือ ขยายออก แล้วก็ชิดขวา ด้วยครับ

 



Topic : 136786



โพสกระทู้ ( 4,434 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook



555

ตัวโจทย์นี้ผมทำใน Excel ครับ
แต่พอจะลง .net แล้ว หาวิธีขยายมันไม่ได้ครับ

อย่าเพิ่งรำคาญผมนะครับ
ดูท่าโปรเจคนี้น่าจะอีกยาว
นี่เพิ่งได้ คณิต ป.2 เองครับ



Tag : .NET, Win (Windows App), C#







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2022-08-19 09:53:36 By : lamaka.tor View : 375 Reply : 7
 

 
spacing
https://stackoverflow.com/questions/2969143/c-sharp-drawstring-letter-spacing

alignment
https://docs.microsoft.com/en-us/dotnet/desktop/winforms/advanced/how-to-align-drawn-text?view=netframeworkdesktop-4.8






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-08-19 14:25:04 By : 009
 


 

No. 2



โพสกระทู้ ( 4,434 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 1 เขียนโดย : 009 เมื่อวันที่ 2022-08-19 14:25:04
รายละเอียดของการตอบ ::
ขอบคุณมากครับ
เพิ่งรู้ว่า ทำแบบนี้ก็ได้

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-08-19 15:35:11 By : lamaka.tor
 

 

No. 3



โพสกระทู้ ( 4,434 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ทำไมมันหายไปส่วนหนึ่งกันรึครับ

666

เหมือนเลขท้ายมันหายไป ครับ

Code (C#)
 public static string SpacedString(string myOldString)
        {
            //ref
            //https://stackoverflow.com/questions/2969143/c-sharp-drawstring-letter-spacing

            System.Text.StringBuilder newStringBuilder = new System.Text.StringBuilder("");
            foreach (char c in myOldString.ToCharArray())
            {
                newStringBuilder.Append(c.ToString() + "  ");
            }

            string MyNewString = "";
            if (newStringBuilder.Length > 0)
            {
                // remember to trim off the last inserted space
                 MyNewString = newStringBuilder.ToString().Substring(0, newStringBuilder.Length - 1).Trim();
                //MyNewString = newStringBuilder.ToString();
            }
     
            // no else needed if the StringBuilder's length is <= 0... The resultant string would just be "", which is what it was intitialized to when declared.
            return MyNewString;
        }



Code (C#)
public static void DrawNumPositive(this Graphics e,  Font fontDetail, int min, int max, int x, int y, string opr, int CountNum= 6)
        {

            
            var num = new Classed.Exten.RandomNumber(min, max);

  
            
            string _a = TextStringExtension.SpacedString(num.MinValue.ToString());
            string _b = TextStringExtension.SpacedString(num.MaxValue.ToString());

            System.Windows.Forms.MessageBox.Show(num.MinValue + "\n" + num.MaxValue + "\n" + _a + "\n" + _b);

            int w = Convert.ToInt32(e.MeasureString("0  ", fontDetail).Width);
            int h = Convert.ToInt32(e.MeasureString("0  ", fontDetail).Height);

            //https://docs.microsoft.com/en-us/dotnet/desktop/winforms/advanced/how-to-align-drawn-text?view=netframeworkdesktop-4.8
            StringFormat format = new StringFormat(StringFormatFlags.DirectionRightToLeft);

            // https://stackoverflow.com/questions/11451001/why-isnt-my-text-right-aligned-when-i-custom-draw-my-strings
            //https://docs.microsoft.com/en-us/dotnet/desktop/winforms/advanced/how-to-align-drawn-text?view=netframeworkdesktop-4.8&redirectedfrom=MSDN
            StringFormat stringFormat = new StringFormat() { Alignment = StringAlignment.Far} ;


            e.DrawString(_b, fontDetail, new SolidBrush(Color.Black), new Rectangle(x, y, w*CountNum, h), stringFormat);
            e.DrawString(_a, fontDetail, new SolidBrush(Color.Black), new Rectangle(x, y+h+10, w * CountNum, h), stringFormat);

            e.DrawString(opr, fontDetail, new SolidBrush(Color.Black), x + (CountNum ) * w, y + 10 + h / 2);
            e.DrawLine(new Pen(Color.Black, 3), x, y + h * 3 + 15, x + (CountNum) * w, y + h * 3 + 15);
            e.DrawLine(new Pen(Color.Black, 3), x, y + h * 3 + 20, x + (CountNum ) * w, y + h * 3 + 20);



        }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-08-19 17:19:20 By : lamaka.tor
 


 

No. 4



โพสกระทู้ ( 4,434 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

เพิ่มข้อสงสัย ครับ
คือสุ่มค่าตั้งแต่ 1 ถึง 1000000 แต่ส่วนใหญ่เหมือนจะได้แค่ค่าสูง ค่าต่ำไม่ค่อยได้ เพราะอะไร ครบั

Code (C#)
 Task.Factory.StartNew(() =>
            {

                //  RandomNumberGenerator.GetInt32(1, 10000)
                //  random.Next(1,1000000)
                int c = 0;
                for (int x = 1; x <= 1000; x++)
                {

                    richTextBox1.Invoke(new Action(() => richTextBox1.Text +="/" + RandomNumberGenerator.GetInt32(1, 1000000)));
                    if (c >= 15)
                    {
                        richTextBox1.Invoke(new Action(() => richTextBox1.Text += "\n"));
                        c= 0;
                    }

                    c++;
                }

               
       


           });


3452

มันเป็นทั้ง RandomNumberGenerator.GetInt32 และ random.Next
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-08-19 21:40:48 By : lamaka.tor
 


 
ตอบความคิดเห็นที่ : 3 เขียนโดย : lamaka.tor เมื่อวันที่ 2022-08-19 17:19:20
รายละเอียดของการตอบ ::
จริงๆ ไม่ได้หาย แต่เกิด overflow หรือ out of bound ลองขยับตำแหน่งข้อความหรือขยายพื้นที่หรือลดขนาดตัวอักษรดูครับ

content overflow


ตอบความคิดเห็นที่ : 4 เขียนโดย : lamaka.tor เมื่อวันที่ 2022-08-19 21:40:48
รายละเอียดของการตอบ ::
ลองแบ่งสุ่มในแต่ละช่วง
สมมติ ต้องการ 1-100 อาจแบ่งเป็น 3, 5, 10 กลุ่ม เช่น

Code
1-10 11-20 ... 91-100


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-08-20 09:49:02 By : 009
 


 
ตอบความคิดเห็นที่ : 3 เขียนโดย : lamaka.tor เมื่อวันที่ 2022-08-19 17:19:20
รายละเอียดของการตอบ ::
แต่ถ้าต้องการแก้ที่ปลายเหตุ ก็เพิ่มอักขระที่ไม่ใช่ตัวเลขต่อท้ายซัก 2 ตัว เวลานำไปคำนวณค่อยตัดออก เช่น

12345 ก็ส่งเป็น 12345a



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-08-20 10:50:20 By : 009
 


 

No. 7



โพสกระทู้ ( 4,434 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 6 เขียนโดย : 009 เมื่อวันที่ 2022-08-20 10:50:20
รายละเอียดของการตอบ ::
ขอบคุณครับ
ลองเพิ่มค่าจาก 6 เป็น 8 ตัวก็ช่วยได้ครับ


ตอบความคิดเห็นที่ : 5 เขียนโดย : 009 เมื่อวันที่ 2022-08-20 09:49:02
รายละเอียดของการตอบ ::
ตอนแรก มโนว่า อยากได้ช่วง ยาวววววว ตั้งแต่ 1-ล้าน ประมาณนั้นครับ
แต่เดี๋ยวจะต้องกำหนดเป็นช่วงไปแหละครับ
อาจจะเป็น
-100-100
1-100
100-1,000
1,000-10,000
10,000-100,000
100,000-1,000,000


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-08-20 11:43:12 By : lamaka.tor
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : C# WinApp จะใช้ DrawString ยังไงให้ตัวหนังสือ ขยายออก แล้วก็ชิดขวา ด้วยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่