C# B窗体使用A窗体的自定义类问题

qq85978868 2007-12-04 03:19:24
我Form1自定义了一个类,
public class MyClass
{
public string username;
public string Username
{
get
{
return username;
}
set
{
username = value;
}
}
}
想在Form3那里用,我在form1一个按钮里写代码如下
MyClass mc = new MyClass();
mc.Username = userid.Text;
Form3处一label这样写
username1.Text = mc.Username;
提示mc缺少using指令或程序集引用,请问是怎么回事?自定义的类应该在哪里定义?使用要不要加什么东西?谢谢了
...全文
176 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuyun1987 2007-12-05
  • 打赏
  • 举报
回复
给你一个多窗体之间通讯的例子,我下面这个例子三个窗体之间的通讯,主窗体和A窗体中分别放一个label来显示数据,B窗体中放一个按钮,用一个Count来统计点击的次数,然后把点击的次数在主窗体和A窗体中显示出来..
主窗体

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 WinFormExample
{
public partial class MainForm : Form
{

public MainForm()
{
InitializeComponent();
OtherForm form = new OtherForm();
form.recorder += this.ShowCount;
form.Show();

Form1 f1 = new Form1();
form.recorder += f1.showCount;
f1.Show();

}
private void ShowCount(string count)
{
this.label1.Text = "你己点击窗体" + count + "次";
}

}
}


A窗体:

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 WinFormExample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

}
public void showCount(string showCounter)
{
this.label1.Text = "你己点击窗体" + showCounter + "次";
}

}
}

B窗体

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 WinFormExample
{
public partial class OtherForm : Form
{
public delegate void ShowInfo(string info);
public ShowInfo recorder;
private int counter = 0;
public OtherForm()
{
InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)
{
counter++;
if (recorder != null)
recorder(counter.ToString());
}

}
}
niclby 2007-12-05
  • 打赏
  • 举报
回复
写在 CLASS类里 然后FORM1 ,3引用
wumingbing_8027 2007-12-05
  • 打赏
  • 举报
回复
Pwdedit_Form 在哪里显示的?
qq85978868 2007-12-04
  • 打赏
  • 举报
回复
大虾帮帮忙,谢谢........55555555555555
qq85978868 2007-12-04
  • 打赏
  • 举报
回复
Form1处还有个按钮代码

private void button1_Click(object sender, System.EventArgs e)
{
MyClass mc = new MyClass();
mc.Username = userid.Text;

}

MyClass mc = new MyClass();这句放在外面也是不行的,不知道是不是放错地方
qq85978868 2007-12-04
  • 打赏
  • 举报
回复
这是Form1的

namespace A
{
...
public class Login_Form : System.Windows.Forms.Form
{

public class MyClass
{
public string username;
public string Username
{
get
{
return username;
}
set
{
username = value;
}
}
}
}
...

}



这是Form3的

namespace 学生宿舍管理系统
{

public class Pwdedit_Form : System.Windows.Forms.Form
{
...
private void username_Click(object sender, System.EventArgs e)
{
username1.Text = mc.Username;
}
...
}
}



请问要怎么改,谢谢啊~~~
YHJ45782008 2007-12-04
  • 打赏
  • 举报
回复
你能不能分层哦 也就是分为
表示层,
业务逻辑层,
业务实体层,
数据保护层,
数据访问层,
和接口
private string userName;//是业务实体层

public string UserName
{
get
{
return userName;
}
set
{
userName = value;
}
}
leehong0704 2007-12-04
  • 打赏
  • 举报
回复
类不是定义窗体下面,是定义下命名空间下面的,只是你写的时候和某个窗体定义在一起的。你可以对里写一个class文件里面的
wumingbing_8027 2007-12-04
  • 打赏
  • 举报
回复
Form3(Username)
{
username1.Text = Username;
}
你要传进去这个参数啊,只要传了,不可能说没有
qq85978868 2007-12-04
  • 打赏
  • 举报
回复
6楼的,不行,直接就说我Form3没Username了...
qq85978868 2007-12-04
  • 打赏
  • 举报
回复
我是有很多Form的,想弄个全局的,能够都可以用到
wumingbing_8027 2007-12-04
  • 打赏
  • 举报
回复
username1.Text = mc.Username;
改为

username1.Text = Username;
qq85978868 2007-12-04
  • 打赏
  • 举报
回复
按三楼的说,提示是修饰符static对该项(MyClass)无效
wumingbing_8027 2007-12-04
  • 打赏
  • 举报
回复
如果你只是要在Form3中使用Form1的Username
在给Form3加一构造方法Form3(Username);构造时直接传过去
如:
Form1中:
MyClass mc = new MyClass();
mc.Username = userid.Text;
Form3 f = new Form3(mc.Username);
f.show();

Form3中
Form3(Username)
{
username1.Text = mc.Username;
}


北京的雾霾天 2007-12-04
  • 打赏
  • 举报
回复
把MyClass定义成Static的试试看:

public static class MyClass
{
public static string username;
public static string Username
{
get
{
return username;
}
set
{
username = value;
}
}
}
qq85978868 2007-12-04
  • 打赏
  • 举报
回复
那请问应该怎么定义?谢谢了
hooo 2007-12-04
  • 打赏
  • 举报
回复
你的Mc隻在button那個事件裡有效..出了那個范圍就不能訪問了

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧