关于VC++里自定义类引用控件里的值的问题
请教个问题,我自定义了一个类ClassStudent{privateage;voiddisplay();}想让age读取edit控件里的数字,然后在display里显示,...
请教个问题,
我自定义了一个类
Class Student
{private age;
void display( );
}
想让age读取edit控件里的数字,然后在display里显示,怎么编程啊,edit控件我定义了一个int型成员变量m_EDAge,就是想把m_EDAge里的值赋给age。 展开
我自定义了一个类
Class Student
{private age;
void display( );
}
想让age读取edit控件里的数字,然后在display里显示,怎么编程啊,edit控件我定义了一个int型成员变量m_EDAge,就是想把m_EDAge里的值赋给age。 展开
3个回答
2011-04-15
展开全部
分成2个项目。
解决方案>项目>类
方法比较多嘛,VS也提供了建立用户控件类型的项目。我给一种方法吧,不要局限于这种。
假设我需要定制一个textbox,使它具有这样的性质:有一个默认的字符串,这个字符串会显示在textbox里面,当这个textbox获得焦点后,textbox会清空这个默认字符串,当textbox失去焦点后,如果textbox的内容是空的话,会显示这个默认字符串。
1.新建一个解决方案Solution1。
文件-新建项目-其他类型项目-visual stdio空白解决方案
2.在这个解决方案里面添加2个项目:Solution1Test
右键解决方案-添加新建项目-Windows窗体应用程序(项目名称:Solution1Test)
右键解决方案-添加新建项目-类库(项目名称:MyTextBox)
3.这个时候系统自动帮你在MyTextBox里面产生了一个类Class1,把这个改个名叫MyTextBox,然后添加必要的引用:
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 MyTextBox
{
public class MyTextBox:TextBox
{
/// <summary>
/// 默认的字符串
/// </summary>
string _DefaultString;
/// <summary>
/// 默认的字符串
/// </summary>
public string DefaultString
{
set { _DefaultString = value;
this.Text = value; }
}
public MyTextBox()
{
this._DefaultString = "请输入关键字";
this.Text = this._DefaultString;
}
protected override void OnEnter(EventArgs e)
{
if (this.Text == this._DefaultString)
{
this.Text = string.Empty;
}
base.OnEnter(e);
}
protected override void OnLeave(EventArgs e)
{
if (this.Text == string.Empty)
{
this.Text = this._DefaultString;
}
base.OnLeave(e);
}
}
}
4.把MyTextBox这个项目编译一下
右键-生成,在bin目录下面自然就会有个dll文件了。
5.转到Solution1Test,添加对MyTextBox的引用。这个时候,你在左边的工具箱里面应该就能看到这个MyTextBox了,直接拖到窗体上去,然后在窗体的构造函数里面设置一下MyTextBox的默认字符串,当然不设置也行,应为MyTextBox的构造函数已经初始化了一个默认的字符串:
public Form1()
{
InitializeComponent();
this.myTextBox1.DefaultString = "请输入关键字";
}
6.运行,效果和预期的一样。
另外,团IDC网上有许多产品团购,便宜有口碑
解决方案>项目>类
方法比较多嘛,VS也提供了建立用户控件类型的项目。我给一种方法吧,不要局限于这种。
假设我需要定制一个textbox,使它具有这样的性质:有一个默认的字符串,这个字符串会显示在textbox里面,当这个textbox获得焦点后,textbox会清空这个默认字符串,当textbox失去焦点后,如果textbox的内容是空的话,会显示这个默认字符串。
1.新建一个解决方案Solution1。
文件-新建项目-其他类型项目-visual stdio空白解决方案
2.在这个解决方案里面添加2个项目:Solution1Test
右键解决方案-添加新建项目-Windows窗体应用程序(项目名称:Solution1Test)
右键解决方案-添加新建项目-类库(项目名称:MyTextBox)
3.这个时候系统自动帮你在MyTextBox里面产生了一个类Class1,把这个改个名叫MyTextBox,然后添加必要的引用:
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 MyTextBox
{
public class MyTextBox:TextBox
{
/// <summary>
/// 默认的字符串
/// </summary>
string _DefaultString;
/// <summary>
/// 默认的字符串
/// </summary>
public string DefaultString
{
set { _DefaultString = value;
this.Text = value; }
}
public MyTextBox()
{
this._DefaultString = "请输入关键字";
this.Text = this._DefaultString;
}
protected override void OnEnter(EventArgs e)
{
if (this.Text == this._DefaultString)
{
this.Text = string.Empty;
}
base.OnEnter(e);
}
protected override void OnLeave(EventArgs e)
{
if (this.Text == string.Empty)
{
this.Text = this._DefaultString;
}
base.OnLeave(e);
}
}
}
4.把MyTextBox这个项目编译一下
右键-生成,在bin目录下面自然就会有个dll文件了。
5.转到Solution1Test,添加对MyTextBox的引用。这个时候,你在左边的工具箱里面应该就能看到这个MyTextBox了,直接拖到窗体上去,然后在窗体的构造函数里面设置一下MyTextBox的默认字符串,当然不设置也行,应为MyTextBox的构造函数已经初始化了一个默认的字符串:
public Form1()
{
InitializeComponent();
this.myTextBox1.DefaultString = "请输入关键字";
}
6.运行,效果和预期的一样。
另外,团IDC网上有许多产品团购,便宜有口碑
展开全部
一楼说的有道理。
想给私有变量age赋值,你可以写个SetAge(int age)函数给其赋值啊。
另外你要有窗口类的指针,才好访问到edit.
想给私有变量age赋值,你可以写个SetAge(int age)函数给其赋值啊。
另外你要有窗口类的指针,才好访问到edit.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
除非你这个类有窗体类的指针,或继承自一个窗体类,否则不可能做到,因为age是私有的,即使实例化类,也无法给她赋值,更别论显示了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询