C#窗体程序导入文件老是出现“未将对象引用设置到对象的实例”,该怎么解决?(下面为代码)

qq_41385415 qq_41385415 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
namespace 图形编程实验
{
public partial class Form1 : Form
{
struct MeasPoint
{
public string Name;
public double x;
public double y;
}
private double m_MaxX, m_MaxY, m_MinX, m_MinY;
private Rectangle m_rect;
private double m_scale;
private List<MeasPoint> m_ptlst;

public Form1()
{
InitializeComponent();
m_ptlst = new List<MeasPoint>();
}

private double CalcScale()
{
double ds = 1.0;
double dsx, dsy;
if ((m_MaxX - m_MinX != 0) && (m_MaxY - m_MinY != 0))
{
dsx = Math.Abs((m_MaxX - m_MinX) / m_rect.Height);
dsy = Math.Abs((m_MaxY - m_MinY) / m_rect.Width);
ds = Math.Max(dsx, dsy);
}
else
{
if (m_MaxX - m_MinX != 0)
{
ds = Math.Abs((m_MaxX - m_MinX) / m_rect.Height);
}
else
{
if (m_MaxY - m_MinY != 0)
{
ds = Math.Abs((m_MaxY - m_MinY) / m_rect.Width);
}
else
{
ds = 1;
}
}
}
return ds;
}
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog openDlg = new OpenFileDialog();
//指定打开文本文件(后缀名为cor)
openDlg.Filter = "武大科傻(cor)文件|*.cor|所有文件(*.*)|*.*";
DialogResult drt = openDlg.ShowDialog();
if (drt == DialogResult.OK)
{
string sFileName = openDlg.FileName;
try
{
if (m_ptlst!= null)
m_ptlst.Clear();

FileStream file = new FileStream(sFileName, FileMode.Open);
StreamReader sr = new StreamReader(file, Encoding.Default);
string st = sr.ReadLine();
int ic = 0;
while (st!= null)
{
ic++;
if (ic <= 4)
{
st = sr.ReadLine();
continue;
}
}
//切割字符串
StringSplit spt = new StringSplitFun(" ");
spt.Duplicates = false;
string[] sts = spt.Splitting(st);
int icols = sts.Count();
if (icols != 5)
{
st = sr.ReadLine();

}
MeasPoint pt = new MeasPoint();
pt.Name = sts[0];
pt.x = double.Parse(sts[1]);
pt.y = double.Parse(sts[2]);
m_ptlst.Add(pt);
st = sr.ReadLine();
sr.Close();
file.Close();
m_MaxX = 0.0;
m_MaxY= 0.0;
m_MinX = 0.0;
m_MinY = 0.0;
GetMaxMinXY(ref m_MaxX, ref m_MaxY, ref m_MinX, ref m_MinY);
m_rect = pictureBox1.ClientRectangle;
m_scale = CalcScale();
pictureBox1.Refresh();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
private void GetMaxMinXY(ref double dmaxX, ref double dmaxY, ref double dminX, ref double dminY)
{
if (m_ptlst.Count <= 0)
return;
dmaxX = -1.0;
dmaxY = -1.0;
dminX = 1000000000;
dminY = 1000000000;
foreach (MeasPoint pt in m_ptlst)
{
if (dmaxX < pt.x)
dmaxX = pt.x;
if (dmaxY < pt.y)
dmaxY = pt.y;
if (dminX > pt.x)
dminX = pt.x;
if (dminY > pt.y)
dminY = pt.y;
}
}

private void pictureBox1_Paint_1(object sender, PaintEventArgs e)
{
if (m_ptlst == null)
return;
if (m_ptlst.Count <= 0)
return;
Graphics g = e.Graphics;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
Brush bush = new SolidBrush(Color.Red);
Font myFont = new Font("宋体", 8, FontStyle.Bold);
foreach (MeasPoint pt in m_ptlst)
{
double dx = (pt.y - m_MinY) / m_scale;
double dy = m_rect.Height - (pt.x - m_MinX) / m_scale;
int ix = (int)dx - 3;
int iy = (int)dy - 3;
Point[] point = new Point[3];
point[0] = new Point(ix, iy - 3);
point[1] = new Point(ix - 3, iy + 3);
point[2] = new Point(ix + 3, iy + 3);
g.FillPolygon(bush, point);
g.DrawString(pt.Name, myFont, bush, ix - 3, iy + 5);
}

}
...全文

相关推荐

高校技术转移办公室人员如何高效完成科技成果的智能快筛与推荐?.docx

高校技术转移办公室人员如何高效完成科技成果的智能快筛与推荐?

BIZKEEN

蓄电池+飞轮储能+风力发电+光伏MPPT的微电网混合储能功率协同控制仿真【仿真+配套复现的参考论文】

内容概要:本文围绕“蓄电池+飞轮储能+风力发电+光伏MPPT的微电网混合储能功率协同控制仿真”展开,结合Simulink仿真模型与配套参考论文,构建了一个集成光伏发电、风力发电、蓄电池与飞轮储能于一体的微电网系统。系统通过光伏最大功率点跟踪(MPPT)技术提升能源捕获效率,并利用风力发电实现多能互补。针对可再生能源出力波动性强的问题,采用混合储能协同控制策略:充分发挥飞轮储能响应速度快的优势平抑高频功率波动,由蓄电池承担低频功率调节任务,实现两者在动态响应与能量密度上的优势互补。控制系统采用分层架构,包含能量管理策略与本地控制策略,确保系统在并网与孤岛模式下的稳定运行。仿真结果表明,该协同控制策略能有效平滑母线电压波动,均衡储能单元荷电状态(SOC),显著提升微电网的电能质量与运行可靠性; 适合人群:具备电力系统、新能源发电、储能技术及自动控制等相关背景的科研人员、研究生及工程技术人员,尤其适合从事微电网、分布式能源系统建模、仿真与优化研究的专业人士; 使用场景及目标:①研究多源异构微电网系统的建模与仿真方法;②探索混合储能系统在平抑可再生能源功率波动中的协同控制机制与能量管理策略;③掌握基于Simulink的微电网分层控制架构与闭环仿真技术;④复现并改进高水平期刊论文中的控制算法与系统模型; 阅读建议:此资源以仿真驱动理论理解,建议读者结合提供的Simulink模型与参考文献,深入剖析控制逻辑、功率分配算法与能量管理策略的设计原理。在学习过程中应重点关注仿真参数配置、控制模块搭建、系统动态响应特性分析,并尝试调整控制参数或优化系统拓扑,以深化对微电网协同控制本质的理解,全面提升科研复现与自主创新的能力。

科研_研学社

Mastering Physical Layer Compliance Challenges at 5GTs.pdf

Mastering Physical Layer Compliance Challenges at 5GTs.pdf

Kernel_RDMA

高校技术转移办公室人员在对接企业需求时,如何高效识别符合市场潜力的科技成果?.docx

高校技术转移办公室人员在对接企业需求时,如何高效识别符合市场潜力的科技成果?

BIZKEEN

产业园区运营负责人如何精准识别并引导优质科技成果对接产业需求?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN
评论 5
收藏 已收藏
分享
返回顶部
qq_41385415
.NET Framework 17,748 成员 24,324 内容