父窗口的控件 Visibled = false;
或者去掉 this.Controls.Add(控件); 这句话
或者去掉 this.Controls.Add(控件); 这句话
解决方案 »
- GetHashCode()函数的功能到底是什么,谁能说清楚一点,这个函数到底有多大用处
- 新手问题,请教
- 问下回调函数的定义问题
- 怎么把数据流直接写入到文件 在线等
- C#FileStream异步读取问题
- 删除映射到本地的网络驱动器上的文件的问题,不解!
- 支持自定义纸张,重复打印范围等功能
- toolstrip上添加DateTimePicker控件的传值问题
- C#中有没有象VB中的CHR这样的函数?
- 求WinForm的打印技术--高手帮帮忙(急)
- winform,datagrid中如何右键菜单筛选数据,就象在ACCESS中一样可以右键菜单然后选筛选选中数据?
- 哪位大侠有用mdi多窗体做的c#程序,让小弟我学习一下!先送一百分,有收获的话,分再狂送!
-----这句话不对啊,对于public的都是会让子类不可以少的,但是私有的或内部使用的当然不会传给字类.难道父窗体的所有属性子窗体都要继承啊?
----只有内部的或私有的是不会传到子类的.公开的方法或属性都会传给子类的.
你好象还没明白我的意思啊
回复人: qqamoon(口水龙)说的有差不多。但是我不明白里面的原因。
form也是一个类,控件就相当于是成员变量。为什么私有父窗体上的控件,在子窗体上还会显示,但是不能做任何操作。
谢谢了
明白我的意思吗?:)
去掉 this.Controls.Add(控件)这种方法也不行啊,cs代码文件里面根本没父窗体的控件名啊。
你是哪里的啊?
有QQ吗?
有时间多交流啊
我的QQ:34847249
-------------------------
你可以用类似下面的代码试试看:protected override void OnLoad(EventArgs e)
{
if (DesignMode)
{
this.button1.Visible = false;
}
else
{
this.button1.Visible = true;
}
base.OnLoad (e);
}
派生类也就是子窗体 的改变的方法 采用 override
using System;
public class DrawingObject
{
public virtual void Draw()
{
Console.WriteLine("I'm just a generic drawing object.");
}
}
说明
清单9-1 定义了DrawingObject类。这是个可以让其他对象继承的基类。该类有一个名为Draw()的方法。Draw()方法带有一个virtual修饰符,该修饰符表明:该基类的派生类可以重载该方法。DrawingObject类的 Draw()方法完成如下事情:输出语句"I'm just a generic drawing object."到控制台。 2.清单9-2. 带有重载方法的派生类:Line.cs, Circle.cs, and Square.cs
using System;
public class Line : DrawingObject
{
public override void Draw()
{
Console.WriteLine("I'm a Line.");
}
}public class Circle : DrawingObject
{
public override void Draw()
{
Console.WriteLine("I'm a Circle.");
}
}public class Square : DrawingObject
{
public override void Draw()
{
Console.WriteLine("I'm a Square.");
}
}
说明
清单9-2定义了三个类。这三个类都派生自DrawingObject类。每个类都有一个同名Draw()方法,这些Draw()方法中的每一个都有一个重载修饰符。重载修饰符可让该方法在运行时重载其基类的虚方法,实现这个功能的条件是:通过基类类型的指针变量来引用该类。 3.清单9-3. 实现多态性的程序:DrawDemo.cs
using System;
public class DrawDemo
{
public static int Main(string[] args)
{
DrawingObject[] dObj = new DrawingObject[4];
dObj[0] = new Line();
dObj[1] = new Circle();
dObj[2] = new Square();
dObj[3] = new DrawingObject();
foreach (DrawingObject drawObj in dObj)
{
drawObj.Draw();
}
return 0;
}
}
说明
清单9-3演示了多态性的实现,该程序使用了在清单 9-1 和清单9-2中定义的类。在DrawDemo类中的Main()方法中,创建了一个数组, 数组元素是DrawingObject 类的对象。该数组名为dObj,是由四个DrawingObject类型的对象组成。 接下来, 初始化dObj数组, 由于Line, Circle和Square类都是DrawingObject类的派生类,所以这些类可以作为dObj数组元素的类型。 如果C#没有这种功能,你得为每个类创建一个数组。继承的性质可以让派生对象当作基类成员一样用,这样就节省了编程工作量。 一旦数组初始化之后,接着是执行foreach循环,寻找数组中的每个元素。在每次循环中, dObj 数组的每个元素(对象)调用其Draw()方法。多态性体现在:在运行时,各自调用每个对象的Draw()方法。尽管dObj 数组中的引用对象类型是DrawingObject,这并不影响派生类重载DrawingObject 类的虚方法Draw()。 在dObj 数组中,通过指向DrawingObject 基类的指针来调用派生类中的重载的Draw()方法。 输出结果是: I'm a Line.
I'm a Circle.
I'm a Square.
I'm just a generic drawing object.
在DrawDemo 程序中,调用了每个派生类的重载的Draw()方法。 最后一行中,执行的是DrawingObject类的虚方法Draw()。这是因为运行到最后,数组的第四个元素是DrawingObject类的对象。
楼主指的是按纽怎么在子类里不可见啊,楼上的可以吗?
不是指的一个虚的方法或属性,而是按纽在界面的可见性.