c# - 为什么这个简单的 C# 试用版不起作用

标签 c# winforms graphics

<分区>

这会产生条纹而不是点。为什么 ?我正在尝试绘制单个像素。还尝试了另一种方法(使用 fillrectangle),它也没有给出预期的结果,得到的是条而不是点。

protected override void OnPaint(PaintEventArgs pea )
    {

         Graphics g = pea.Graphics ;

         for ( int y = 1 ; y <= Width ; y++ )
         {
            for (  int x  =  1  ; x <=  Height    ; x++ )
            {
                System.Random rand = new  System.Random() ;
                Color c =   (Color.FromArgb(rand.Next(256),
                                    rand.Next(256),
                                    rand.Next(256)));
            // SolidBrush myBrush = new SolidBrush(c);
            // g.FillRectangle(myBrush, x, y, 1, 1);


                 Bitmap pt = new Bitmap(1, 1);
                 pt.SetPixel(0, 0, c);
                 g.DrawImageUnscaled(pt, x, y);

            }
        }

这里发生了什么?

最佳答案

你不应该每次都创建一个新的 Random 对象。因为这会给你一遍又一遍地重复完全相同的“随机”数字。

而是使用相同的 Random 对象并在中调用 Next

关于c# - 为什么这个简单的 C# 试用版不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2271878/

相关文章:

c# - 是否可以将属性作为 "out"或 "ref"参数传递?

c# - 线程安全事件 - 这是 "clean"方式吗?

wpf - 调整托管数百个类似控件的 WPF 应用程序性能

java - JButton 中的多个操作

c# - 数据存储选项

c# - 从 winforms 运行 aspx 页面

c# - 打开 "known file type"进入自定义应用程序的运行实例 - .NET

java - 如何循环浏览我创建的砖 block 图形?

c++ - 带阴影的聚光灯变成方形

c# - 在 Vista 上设置文件夹权限