2012年6月1日 星期五
C# 繼承
要 C# 中做到跟 Delphi 以下 inherited 一樣效果,C#作法測試說明:
type
TfrmPrnSuCount1 = class(TfrmPrnList)
:
:
procedure TfrmPrnSuCount1.QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
//此指令,會呼叫 基底Form
//frmPrnList.QuickRep1BeforePrint()執行後
//再回來往下執行
inherited;
case g_iMode of
0: //全部列印
begin
QRLabel5.Caption:= '列印範圍:全部列印';
end;
1: //日期範圍
begin
QRLabel5.Caption:=
'列印範圍:'+
C_StoC(g_sBdate)+ '~'+
C_StoC(g_sEdate);
end;
end;
end;
------------------------------
使用了 Virtual 配合 Override 的變通應用
namespace GISTools
{
//基底Form frmAsk
public partial class frmAsk : Form
{
public frmAsk()
{
InitializeComponent();
}
//確定按鈕
public virtual void btnOk_Click(object sender, EventArgs e)
{
//btnOk.DialogResult = DialogResult.OK;
MessageBox.Show("ASK 基底Form!!");
}
}
:
:
//繼承Form frmM301, 繼承自frmAsk
public partial class frmM301 : GISTools.frmAsk
{
public frmM301()
{
InitializeComponent();
}
//確定按鈕
//三種不同結果測試
//第一種:只會秀"ASK 基底Form!!"
//new public void btnOk_Click(object sender, EventArgs e)
//{
// MessageBox.Show("M301 World!!");
//}
//第二種:只會秀"M301 World!!"
//public override void btnOk_Click(object sender, EventArgs e)
//{
// MessageBox.Show("M301 World!!");
//}
//第三種:會先秀"ASK 基底Form!!",
// 再秀 "M301 繼承Form!!"
public override void btnOk_Click(object sender, EventArgs e)
{
//因為基底frmAsk.btnOk_Click()用了Virtual,
//無法再用static, 故要先把物件實體化才能用
frmAsk frmAsk1 = new frmAsk();
frmAsk1.btnOk_Click(sender, e);
frmAsk1.Dispose();
MessageBox.Show("M301 繼承Form!!");
}
}
}
---
Welly
訂閱:
張貼留言 (Atom)
casino, poker room, blackjack, bingo
回覆刪除casino, https://septcasino.com/review/merit-casino/ poker room, blackjack, bingo room, blackjack, bingo ventureberg.com/ room, poker room, https://vannienailor4166blog.blogspot.com/ poker room, communitykhabar poker room, poker room, poker room, poker room,