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);
}

}
...全文

相关推荐

PCI-SIG Fact Sheet for Sponsors.pdf

PCI-SIG Fact Sheet for Sponsors.pdf

Kernel_RDMA

无刷直流电机(BLDCM)转速电流双闭环控制、三相桥式星型全控电机研究(Simulink仿真实现)

内容概要:本文针对含分布式电源的配电网在多线路故障情况下的恢复问题,提出了一种将网络重构、孤岛划分与检修进度统一纳入多时段优化框架的故障恢复模型。该模型以最小化网损和甩负荷惩罚为优化目标,综合考虑节点功率守恒、支路潮流、电压与容量约束、二阶锥松弛、拓扑连通性及检修时序等多种约束条件,实现了故障期间供电路径的动态调整与局部供电区域的灵活组织。通过在IEEE33节点系统上的仿真验证,展示了各时段的重构方案、电压分布与负荷恢复情况,证明了模型在提升系统韧性方面的有效性。文章还对建模细节进行了深入评述,并提出了在负荷分级、无功处理、辐射状结构精确建模等方面的改进建议。; 适合人群:电力系统自动化、智能电网及相关专业的研究生、科研人员以及从事配电网规划与运行的工程技术人员。; 使用场景及目标:①研究含分布式电源的主动配电网在故障条件下的快速恢复策略;②学习和应用混合整数二阶锥规划(MISOCP)在电力系统优化中的建模方法;③掌握基于虚拟流的拓扑连通性建模技术,用于多微网协同恢复分析;④为撰写相关领域学术论文或工程方案提供理论参考与实现范例。; 阅读建议:本文理论性强,涉及较多数学建模与优化知识,建议读者结合文中提供的Matlab代码与参考文献,逐步理解模型构建逻辑,并尝试复现仿真结果。对于希望应用于实际工程的研究者,可重点关注第11节的改进方向,以完善模型的实用性与精确性。

荧光Matlab

iOSNotesForProfessionals.pdf

iOSNotesForProfessionals.pdf

罗四强

科技成果转化项目进场交易前,评估备案环节需要准备哪些材料?.docx

科技成果转化项目进场交易前,评估备案环节需要准备哪些材料?

BIZKEEN

国央企创新负责人如何通过平台实现创新资源的定向调配与服务能力升级?.docx

国央企创新负责人如何通过平台实现创新资源的定向调配与服务能力升级?

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