网页资讯贴吧知道视频音乐图片地图文库
进入贴吧全吧搜索吧内搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
04月15日漏签0天
c#吧 关注:144,557贴子:769,111
  • 看贴

  • 图片

  • 精品

  • 视频

  • 游戏

  • 45回复贴,共1页
<<返回c#吧
>0< 加载中...

求助!无法实现循环,把while(true)注释掉的时候可运行

  • 只看楼主
  • 收藏

  • 回复
  • shrman
  • c#大菜鸟
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;


using System.Threading;


namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}


private void Form1_Paint(object sender, PaintEventArgs e)
{

}


private void pictureBox1_Click(object sender, EventArgs e)
{


}


private void Form1_Load(object sender, EventArgs e)
{


}


private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
int xt = -1;
int lx = pictureBox1.Width / 4, ly = pictureBox1.Height / 4;
int num = 3;
//while(true)
{
xt++;
num++;
e.Graphics.DrawLine(Pens.Black, 0, pictureBox1.Height / 2, pictureBox1.Width, pictureBox1.Height / 2);//X轴//
e.Graphics.DrawLine(Pens.Black, pictureBox1.Width / 2, 0, pictureBox1.Width / 2, pictureBox1.Height);//Y轴//
//画出坐标轴,十字型,原点位于图像中心//
for (int i = 1; i <= num; i++)
{
e.Graphics.DrawLine(Pens.Black, lx * (num - 1) / num * i, pictureBox1.Height / 2, lx * (num - 1) / num * i, pictureBox1.Height / 2 - 5);
//画图X轴刻度线,分度为1,长度为10,刻度线的高度为2,//
e.Graphics.DrawString((i - 2).ToString(), new Font("宋体", 10), new SolidBrush(Color.Green), lx * (num - 1) / num * i - 5, pictureBox1.Height / 2);
// 写出刻度数字,i-5表示零点位置在坐标中心//
}
// (i - 2).ToString() 将此实例的数值转换为其等效的字符串表示形式
// new Font("宋体", 10)设置字体和大小
// new SolidBrush(Color.Green) 设置字体颜色为绿色
for (int j = 1; j < 4; j++) //画出Y轴刻度
{
e.Graphics.DrawLine(Pens.Black, pictureBox1.Width / 2, ly * j, pictureBox1.Width / 2 + 5, ly * j);
if (j - 2 != 0)
e.Graphics.DrawString((j - 2).ToString(), new Font("宋体", 10), new SolidBrush(Color.Green), pictureBox1.Width / 2 - 15, pictureBox1.Height / 4 * j);
}
int size = 350;
double[] x = new double[size];
Pen pen = new Pen(Color.Blue);
int val = 2;
float temp = 0.0f;
//e.Graphics.TranslateTransform(pictureBox1.Width / 5, pictureBox1.Height / 2);//X,Y平移,平移坐标轴
for (int i = 0; i < size; i++)
{
x[i] = Math.Sin(2 * Math.PI * i / pictureBox1.Width * 10 / 3) * pictureBox1.Height / 4;
e.Graphics.DrawLine(pen, i * val * (num - 1) / num, temp + Convert.ToSingle(2 * ly), (i * val + val / 2) * (num - 1) / num, (float)x[i] + Convert.ToSingle(2 * ly));
temp = (float)x[i];
}
Thread.Sleep(10);
//pictureBox1.Image.Dispose();
}
}
}
}


  • shrman
  • c#大菜鸟
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
为什么这个循环无法实现,而只有把while(true)注释掉的时候才可以运行,求大神帮助


  • momoshazi
  • c#爱好者
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
没有}


  • 楠小南
  • c#大牛
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你自己都没调试吧。报什么错了。 错误信息呢? 一大堆 代码 懒得看了


  • 超级爱好者Urey
  • c#大菜鸟
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
。。。 代码也太多了


  • 超级爱好者Urey
  • c#大菜鸟
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
对齐后看起来好多了


  • 超级爱好者Urey
  • c#大菜鸟
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你的一直无限的执行~~(不知是不是用在paint事件不合适
这个改后的效果:


  • 愛蜜莉雅
  • c#诠释者
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
因为卡住了。假死机。


  • sunyubokkkkk
  • c#砖家
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
在循环里面的结尾加上Application.DoEvents();或者把while起到的循环作用改成在Paint底部加上Invalidate();(也需要Application.DoEvents();)


  • 超级爱好者Urey
  • c#大菜鸟
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Thread thread = null;//全局变量
private void 方法(参数) //事件
{
Thread thread = new Thread(new ThreadStart(方法名));//把执行的代码放方法里
thread.Start();
}


  • 超级爱好者Urey
  • c#大菜鸟
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我是用
Graphics e = pictureBox1.CreateGraphics();//我觉得这句写循环体外就行
这里的变量名用g好一些吧~
然后循环体内
e.Clear(Color.White); //随便调个颜色,之前用黄的不好看哈哈


登录百度帐号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 45回复贴,共1页
<<返回c#吧
分享到:
©2020 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示