winform的问题。我在first窗体内有以下代码:frmMain fmain = new frmMain();
fmain.Show();
frmLogin Login = new frmLogin();
Login.ShowDialog();
this.Hide();我在Login窗体的代码中有这样一句代码:
fmain.tsslUser.Text = "||当前操作用户: " + frmLogin.M_str_name;
然而系统提示错误:当前上下文中不存在名称“fmain”。可我并没有关闭fmain窗体啊,在屏幕上也看到了fmain窗体的模样了,为什么不能引用到fmain窗体呢?谢谢指点!
fmain.Show();
frmLogin Login = new frmLogin();
Login.ShowDialog();
this.Hide();我在Login窗体的代码中有这样一句代码:
fmain.tsslUser.Text = "||当前操作用户: " + frmLogin.M_str_name;
然而系统提示错误:当前上下文中不存在名称“fmain”。可我并没有关闭fmain窗体啊,在屏幕上也看到了fmain窗体的模样了,为什么不能引用到fmain窗体呢?谢谢指点!
解决方案 »
- c#中的lable控件重写onpaint()后出现了问题,大神们,小弟这厢有礼了
- 问两个不太确定的问题:object a=10是不是属于装箱?
- 请教一个C#中时间段的划分的问题
- 高分,office word编程操作3问
- winform 阴历转阳历求解。
- C# winform下如何实现局域网内下载
- C#的扩展方法是否适合大量使用?
- ASP.NET 2.0 中的 GridView双击事件和传值问题
- acdsee5的帮助怎么做?
- .net 问题“vc package not available or not registered”
- 怎么发布C# ActiveX控件
- 用C#做网站,并获得来访ip?急急急!!!
fmain.Show();
frmLogin Login = new frmLogin(fmain);
Login.ShowDialog();
this.Hide();
把fmain变量传过去才能访问到的...
在Login窗体除了默认构造函数增加一个传参的构造函数并继承默认构造函数
修改first窗体内有以下代码如下:
frmMain fmain = new frmMain();
fmain.Show();
frmLogin Login = new frmLogin(fmain);
Login.ShowDialog();
this.Hide();
Login窗体要定义一窗体变量接收传递的窗体参数,这样即可用该变量操作
具体应该如何传递呀?请高手明示。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace WindowsApplication1
{
public partial class frmLogin : Form
{
Form frm;
public frmLogin()
{
InitializeComponent();
}
public frmLogin(Form f):this()
{
frm = f;
}
frm..tsslUser.Text = "||当前操作用户: " + frmLogin.M_str_name;
}
}
在first窗体内有以下代码: frmMain fmain = new frmMain();
fmain.Show();
frmLogin Login = new frmLogin(fmain);
Login.ShowDialog();
this.Hide();
我按照以上的提示自己写了一下,但不太对,请看代码:
frmMain fmain = new frmMain();
fmain.Show();
frmLogin Login = new frmLogin();
Login.ShowDialog(fmain); <- 这里加上fmain
this.Hide();然后在frmLogin中这样写:
public partial class frmLogin : Form
{
private object objMain = null;
public frmLogin(object obj)
{
objMain = obj;
} private void btnLogin_Click(object sender, EventArgs e) //登录
{
......
objMain.tsslUser.Text = "||当前操作用户: " + frmLogin.M_str_name; <- 这里出错!
请高手帮看看错在哪儿?谢谢!
Login.ShowDialog(fmain); <- 这里加上fmain
修改
frmLogin Login = new frmLogin(fmain); <- 这里加上fmain
Login.ShowDialog();
public partial class frmLogin : Form
{
Form frm;
public frmLogin()
{
InitializeComponent();
}
public frmLogin(Form f):this()
{
frm = f;
}
frm..tsslUser.Text = "||当前操作用户: " + frmLogin.M_str_name;
}
frmMain fmain = new frmMain();
fmain.Show();
frmLogin Login = new frmLogin(fmain);
Login.ShowDialog();
this.Hide();public partial class frmLogin : Form
{
Form frm;
public frmLogin()
{
InitializeComponent();
} public frmLogin(Form f) : this()
{
frm = f;
} private void btnLogin_Click(object sender, EventArgs e) //登录
{
.....
frm.tsslUser.Text = "||当前操作用户: " + M_str_name; <- 本句出错,说是找不到tsslUser看来好像还是无法引用fmain。不知哪儿还有错?
运行后我在上句中断了一下,发现frm的确是窗体fmain,比如frm.Text显示的确实是fmain窗体的标题内容,不过像tssl(状态行)、frmMain_Load()以及自己写的函数都无法引用,Why?
{
private ClassB B;
private ClassC C;
}
//在类ClassC中能访问到ClassA中的私有变量B?
//两种解决方案
//1.将B定义为共有
//2.上面说的传参
//记住Form也是类,具有类的所有特性