xuhx(一觉亮天): public static Form1 form1 = new Form1(); form1早就在这一句声明为静态变量而且初始化过了
大家看我这样做行不行,我是用VB。NET的 1、关于FORM1,我想采用 haokaka(夏卡朋) 的方法,因为一个对象毕竟是让人愉快的,但我 Public Class Form1 Inherits System.Windows.Forms.Form#Region " Windows 窗体设计器生成的代码 " Public Static Form1 As Form1 = New Form1‘“static”在成员变量中声名无效。 Public Static Function Create()’方法不能声明为“static” Return Form1 End Function Public Sub New()MSDN中提示仅可以在过程级使用 Static。这意味着可以在过程或过程的块内(但不是在类或模块级)声明静态变量。2、传递数值我考虑用inelm(木野狐) 的 public 属性,这个方法看起来很不错。 3、但我还是没法在用户查找上双击后,直接显示FORM1,并且运行我的代码。重新写构造函数不好,因为我不想关了FORM1,再开一个FORM1。这里面产生了另一个问题:form1既然是类,那程序运行时的实例名是什么?我怎样才能把FORM1变成PUBLIC或STATIC的?不会再给整个程序加一个启动模块吧,在里面声明?
public class Form1 : System.Windows.Forms.Form
{
public static Form1 form1 = new Form1(); public static Form1 Create()
{
return form1;
} //....
}
创建Form1的实例的时候不要调用它的构造函数,只调用Create():
Form1 form1 = Form1.Create();
public static Form1 Create()
{
if (!form1.Created)
{
form1 = new Form1();
}
return form1;
}
private void button1_Click(object sender, System.EventArgs e)
{
Form2 fm = new Form2();
fm.Owner = this;
fm.Show();
} public void settext( string s )
{
textBox1.Text = s;
}Form2为查找窗体,我用一个ListBox代替DataGrid:
private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
((Form1)this.Owner).settext( listBox1.SelectedIndex.ToString() );
}测试通过。这么做的效果有点类似于.NET编辑环境中的“查找框”。
public Form1(DataRow dr)
{
//在创建完窗体上的控件后显示DataRow的信息
}在你打开这个窗口的时候把DataGrid中选择的DataRow传进来
保留原来的窗体实例,再次使用只需
frm.Activate();请可以了。如果没有保存,那就遍历查找。
public static Form1 form1 = new Form1();
form1早就在这一句声明为静态变量而且初始化过了
1、关于FORM1,我想采用 haokaka(夏卡朋) 的方法,因为一个对象毕竟是让人愉快的,但我
Public Class Form1
Inherits System.Windows.Forms.Form#Region " Windows 窗体设计器生成的代码 " Public Static Form1 As Form1 = New Form1‘“static”在成员变量中声名无效。
Public Static Function Create()’方法不能声明为“static” Return Form1 End Function
Public Sub New()MSDN中提示仅可以在过程级使用 Static。这意味着可以在过程或过程的块内(但不是在类或模块级)声明静态变量。2、传递数值我考虑用inelm(木野狐) 的 public 属性,这个方法看起来很不错。
3、但我还是没法在用户查找上双击后,直接显示FORM1,并且运行我的代码。重新写构造函数不好,因为我不想关了FORM1,再开一个FORM1。这里面产生了另一个问题:form1既然是类,那程序运行时的实例名是什么?我怎样才能把FORM1变成PUBLIC或STATIC的?不会再给整个程序加一个启动模块吧,在里面声明?