“WindowsFormsApplication1.Form1”的类型初始值设定项引发异常。

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;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private static DataTable dtSource = CreateTableStruct();//存储数据源
//创建表结构
private static DataTable CreateTableStruct()
{
DataTable dt = new DataTable(); //创建一个DataTable
DataColumn column; //声明一个DataColumn
column = new DataColumn(); // 创建一个 列
column.DataType = System.Type.GetType("System.Boolean");//声明列的类型
column.ColumnName = "checkOver"; //设置列名称
dt.Columns.Add(column); //添加到表中
column = new DataColumn(); //创建一个列
column.DataType = System.Type.GetType("System.String");//声明列的类型
column.ColumnName = "ID"; //设置列的名称
dt.Columns.Add(column); //添加到表中
column = new DataColumn(); //创建一个列
column.DataType = System.Type.GetType("System.String");//声明列的类型
column.ColumnName = "姓名"; //设置列的名称
dt.Columns.Add(column); //添加到表中
column = new DataColumn(); //创建一个列
column.DataType = System.Type.GetType("System.String");//声明列的类型
column.ColumnName = "年龄"; //设置列的名称
dt.Columns.Add(column); //添加到表中column = new DataColumn(); //创建一个列
column.DataType = System.Type.GetType("System.String");//声明列的类型
column.ColumnName = "性别"; //设置列的名称
dt.Columns.Add(column); //添加到表中
return dt;
}
//创建数据
private void CreateData(int createCount)
{
int alreadyRows = dtSource.Rows.Count; //获取数据源中最大行数
int baseRowNum = 0; //存储当前中最大的ID号
if (alreadyRows > 0)
{
try
{
baseRowNum = int.Parse(dtSource.Rows[alreadyRows - 1][1].ToString());//获取最大的行号
}
catch (Exception ex)
{
MessageBox.Show(ex.Message); //显示错误信息
return;
}
}
DataRow row; //声明一个行号
for (int i = baseRowNum; i < baseRowNum + createCount; i++) //创建行数
{
row = dtSource.NewRow();
row["checkOver"] = true;
row["ID"] = (i + 1);
row["姓名"] = "姓名" + (i + 1);
row["年龄"] = "年龄" + (i + 1);
row["性别"] = "性别" + (i + 1);
dtSource.Rows.Add(row);
}
dataGridView1.DataSource = dtSource; //绑定数据源
}
// 创建行数
private void button3_Click(object sender, EventArgs e)
{
if (textBox1.Text.Trim().Length > 0) //如果输入不为空
{
int rownum = 0; //存储输入的行数
rownum = int.Parse(textBox1.Text); //用户输入转化行数
CreateData(rownum); //调用创建数据源的方法创建rownum行数据
}
else
{
MessageBox.Show("请输入需要创建的行数"); //提示出错
}
}
//删除数据
private void button2_Click(object sender, EventArgs e)
{
if (textBox2.Text.Trim().Length > 0) //如果输入不为空
{
int rownum = 0; //存储需要上出的行数
try
{
rownum = int.Parse(textBox2.Text); //获取需要删除的行数
int sourceCount = dtSource.Rows.Count; //获取数据源的行数
if (rownum > sourceCount) //判断是否有这么多行
{
MessageBox.Show("输入行数超过了总行数"); //提示错误
}
else
{
dtSource.Rows.RemoveAt(rownum - 1);
dataGridView1.DataSource = dtSource;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
else
{
MessageBox.Show("请输入需要删除的行数"); //提示错误
}
}
//填充combox控件
public void FillCombox()
{
// comboBox1.Items.Add("男");
// comboBox1.Items.Add("女");
}
//添加事件
private void button1_Click(object sender,EventArgs e)
{
if (textBox3.Text.Trim().Length < 0) //判断是否输入姓名
{
MessageBox.Show("请输入姓名");
}
else if(textBox5.Text.Trim().Length <0)
{
MessageBox.Show("请输入年龄");
}
else if (comboBox1.SelectedItem == null)
{
MessageBox.Show("请选择性别");
}
else
{
DataRow newR = dtSource.NewRow(); //创建一个新行
int alreadyRows = dtSource.Rows.Count; //获取数据源中的总行数
int baseRowNum = 0; //存储当前最大的ID号
if(alreadyRows > 0)
{
try
{
baseRowNum = int.Parse(dtSource.Rows[alreadyRows - 1][1].ToString()); //获取最大的行号
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
}
newR["checkOver"] = true; //设置新建行
newR["ID"] = (baseRowNum + 1);
newR["姓名"] = textBox3.Text;
newR["年龄"] = textBox5.Text;
newR["性别"] = comboBox1.SelectedItem.ToString();
dtSource.Rows.Add(newR); //添加到数据源
dataGridView1.DataSource = dtSource; //绑定数据源
}
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
comboBox1.Items.Add("男");
comboBox1.Items.Add("女");
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
comboBox1.Items.Add("男");
comboBox1.Items.Add("女");
}
private void textBox3_TextChanged(object sender, EventArgs e)
{
}
private void textBox5_TextChanged(object sender, EventArgs e)
{
}
private void button1_Click_1(object sender, EventArgs e)
{
}
private void button2_Click_1(object sender, EventArgs e)
{
}
private void button3_Click_1(object sender, EventArgs e)
{
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
}
}
上面是我的代码,我的程序总是报这个错误,我真的解决不了,我是个菜鸟,求大神指教啊
相关推荐
WindowsFormsApplication1
WindowsFormsApplication1.rar WindowsFormsApplication1.rar WindowsFormsApplication1.rar
WindowsFormsApplication1.rar
用VS自带的Chart图表控件,制作实时动态显示的折线图,和波形图
WindowsFormsApplication1.zip
C#练习
C# RFID读写器上位机开发:自动读卡、串口解析与数据库入库实践
串口通信作为工业设备与上位机交互的经典方式,广泛应用于物联网、数据采集和自动化控制场景。在C#上位机开发中,基于Windows Forms的串口通信程序能够高效接收设备数据,并完成协议解析、业务处理和持久化存储。RFID读写器是典型的串口设备,其自动读卡模式依靠事件驱动机制,要求开发者正确处理串口参数配置、字节序转换、防重入库以及异常重连等关键环节。本文以一套C#自动读卡版RFID读写器工程为切入点,深入拆解其工程结构、串口数据链路和数据库访问逻辑,并针对“端口不存在”“重复记录”“串口假死”等实战问题给出
机器视觉光源控制上位机源码解析:串口通信与亮度映射实战
串口通信是工业控制上位机与硬件交互的基础技术,通过RS232或RS485协议实现设备指令下发与数据采集。其核心原理在于配置波特率、数据位、停止位和校验方式,确保字节流准确传输。在机器视觉领域,光源控制上位机通过串口调节光源亮度,直接影响图像质量与算法稳定性。典型应用场景包括工业相机打光强度调节、多通道光源配方管理及产线快速换型。亮度映射需将界面百分比转换为硬件支持的数值范围,并处理线性度与边界问题。本文围绕opt光源控制源码,深入拆解WinForms工程结构、串口初始化、协议拼帧及避坑经验,帮助开发者快速掌


