用这个代码
private void button5_Click(object sender, EventArgs e)
{
Form1 myForm = new Form4();
myForm.ShowDialog();
}
提示错误
无法将类型“中国历史数据库.Form4”隐式转换为“中国历史数据库.Form1”
1、问题出在这个赋值语句上面:
Form1 myForm = new Form4();
myForm是Form1类型的变量,给它赋值一个Form4类型的实例,又没有相应类型转换操作,就会出现“无法隐式转换类的错误”。
改正的方法:
Form1 myForm = new Form1();
或
Form4 myForm = new Form4();
2、C#类型转换:
C#不同类型变量之间不充许直接赋值,但是可以通过类型转换来解决这一问题。
如字符串赋值给整型变量的类型转换:
int num = int.Parse("123"); int num1 = Convert.ToInt32("234");
题中如果Form1和Form4是各自独立的类型,那么按上面改正即可。
特例是如果Form1是Form4的父类,这种情况可以通过强制类型转换来解决问题。
Form1 myForm = (Form1) new Form4();
扩展资料:
在 C# 中,可以执行以下几种类型的转换:
1、隐式转换:由于该转换是一种类型安全的转换,不会导致数据丢失,因此不需要任何特殊的语法。 示例包括从较小整数类型到较大整数类型的转换以及从派生类到基类的转换。
2、显式转换(强制转换):显式转换需要强制转换运算符。 在转换中可能丢失信息时或在出于其他原因转换可能不成功时,必须进行强制转换。 典型的示例包括从数值到精度较低或范围较小的类型的转换和从基类实例到派生类的转换。
3、用户定义的转换:可以定义一些特殊的方法来执行用户定义的转换,使不具有基类和派生类关系的自定义类型之间可以显式和隐式转换。 有关详细信息,请参阅转换运算符。
4、使用帮助程序类进行转换:若要在非兼容类型之间转换(例如整数和 System.DateTime 对象之间,或十六进制字符串和字节数组之间),可使用 System.BitConverter 类、System.Convert 类和内置数值类型的 Parse 方法(例如 Int32.Parse)。
参考资料:
弹出Form1:
private void button5_Click(object sender, EventArgs e)
{
Form1 myForm = new Form1()
myForm.ShowDialog();
}
弹出Form4:
private void button5_Click(object sender, EventArgs e)
{
Form4 myForm = new Form4();
myForm.ShowDialog();
}
有弹出就有关闭,想要关闭窗体的话可以这样
1、close():指仅关闭当前窗体,如果不是主窗体(包含主线程的窗体,并非MDI窗体)的话,是无法退出整个程序的。如果有托管线程也无法退出。
此方法会调用 dispose() 方法,所以它会自动的帮我们释放内存,除了该窗体是多文档应用程序(MDI)的一部分并且此窗体不可见或此窗体是“模态”窗体。
close() 方法执行的时候会触发两个事件:
Form_Closing 和 Form_Closeed 事件,Form_Closing 是在窗体关闭时执行,Form_Closed 是在窗体关闭之后执行,所以如果想取消关闭窗体,可以在 Form_Closing 事件里取消。
2、Application.Exit(): 强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出。
3、Application.ExitThread(): 强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题。
4、System.Environment.Exit(0); 这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束的很干净。 参数0:代表程序正常退出;参数1:代表程序非正常退出。
本回答被网友采纳可是我的确想弹出另外一个窗体怎么办呢
c#如何单击按钮显示另一个窗体
1、首先点击“MicrosoftVisualStudio2010”图标,打开软件。\/iknow-pic.cdn.bcebos.com\/faf2b2119313b07e7e60c61303d7912396dd8cc8"target="_blank"title="点击查看大图"class="ikqb_img_alink">\/iknow-pic.cdn.bcebos.com\/faf2b2119313b07e7e60c61303d7912396dd8cc8?x-bce-process=image%2Fresize%2Cm...
c#如何单击按钮显示另一个窗体
1.首先,启动MicrosoftVisualStudio2010,这是你的主要开发工具。2.在工作区,找到你的项目,鼠标右键点击,从下拉菜单中选择“添加”选项,以便开始创建新的内容。3.在“添加”对话框中,选择“Windows窗体”,这将生成一个新的窗体文件,用于你的程序。4.在新创建的窗体上,找到左侧工具箱,找到并拖动...
C#点击button如何弹出里一个窗体
1、问题出在这个赋值语句上面:Form1 myForm = new Form4();myForm是Form1类型的变量,给它赋值一个Form4类型的实例,又没有相应类型转换操作,就会出现“无法隐式转换类的错误”。改正的方法:Form1 myForm = new Form1();或Form4 myForm = new Form4();2、C#类型转换:C#不同类型变量之...
C#中一个新建Button点击它可以弹出一个新的窗口Form,这个代码这么写...
右击你的项目名称,选择【添加】->【Windows窗体】,然后给新窗体取个名字,例如“MyForm”。然后这样写代码:\\x0d\\x0aprivate void btNewMake_Click(object sender, EventArgs e)\\x0d\\x0a{\\x0d\\x0a \/\/该怎么写这里的弹出窗口代码,谢谢了!\\x0d\\x0a MyForm f = new MyForm()...
c#点击button后在其下面弹出一个类似于窗口的组件,如何实现
如果是单纯的弹出来一个对话框,很简单new一个Form就行了,出现位置选择在按钮的下方即可。如果是弹出的对话框与按钮是联动的关系,比如点击修改信息会很自然出现对话框(不是弹出),就需要自定义组件了,把对话框和按钮某些功能重写即可实现 望采纳 ...
在visual C#中怎样单击按钮跳出窗口来?
使用Response.Redirect("main.aspx",true),或者Server.Transfer("main.aspx")。if(用户名密码和数据库中的匹配){ Response.Redirect("main.aspx",true);}
C#中如何在点击一个按钮后,生成新窗口?
在窗口上面从工具箱中拖一个Button按钮上去,然后添加一个对话框(名字为OPEN)到资源管理器中去,然后双击窗口上面的Button按钮,在生产的函数体里面写如下代码就行了:OPEN o=new OPEN();o.showDialog();然后你运行是,双击就会弹出你新建的这个OPEN对话框,挺简单的,加油!
c#点击按钮跳转到另一个窗口
跳转到另一个窗口的话 是要新建一个窗体的 例如新建了NewForm 在点击事件里面 button_click (){ NewForm nf=new NewForm();nf.ShowDialog();} 就可以实现了
C#中有两个radioButton单选框每次启动的时候都会默认有一个被选中,如何...
你是不是设置了点击那个RadioButton就弹出对话框?结果程序启动时确弹了两次?你可能是在程序开始时,使用代码设置了他的状态。其实初始状态在属性页就可以设置,不需要代码再次设置。另外你也可以使用状态标志位的方式,在弹对话框的位置判断一下是否是窗体初始化中,是则不弹出对话框。
C#,按钮按下后隐藏按钮所在窗体,并运行另一个窗体
Form { public Form1(){ InitializeComponent();} private void button1_Click(object sender, EventArgs e){ Form2 form2 = new Form2();\/\/form2.Show();this.Hide();if (form2.ShowDialog() == DialogResult.OK){ this.Show();} } } } 这样就行了,在form2关闭后就会弹回到form1 ...