IButtonControl 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
允許控制項在表單中有和按鈕相同的作用。
public interface class IButtonControl
public interface IButtonControl
type IButtonControl = interface
Public Interface IButtonControl
- 衍生
範例
下列範例繼承自 ButtonBase 類別並實作 IButtonControl 介面。 實作 DialogResult 會新增至 屬性和 NotifyDefault 和 PerformClick 方法。
#using <System.dll>
#using <System.Drawing.dll>
#using <System.Windows.Forms.dll>
using namespace System;
using namespace System::Windows::Forms;
using namespace System::Drawing;
public ref class MyButton: public ButtonBase, public IButtonControl
{
private:
System::Windows::Forms::DialogResult myDialogResult;
public:
MyButton()
{
// Make the button White and a Popup style
// so it can be distinguished on the form.
this->FlatStyle = ::FlatStyle::Popup;
this->BackColor = Color::White;
}
property System::Windows::Forms::DialogResult DialogResult
{
// Add implementation to the IButtonControl.DialogResult property.
virtual System::Windows::Forms::DialogResult get()
{
return this->myDialogResult;
}
virtual void set( System::Windows::Forms::DialogResult value )
{
if ( Enum::IsDefined( System::Windows::Forms::DialogResult::typeid, value ) )
{
this->myDialogResult = value;
}
}
}
// Add implementation to the IButtonControl.NotifyDefault method.
virtual void NotifyDefault( bool value )
{
if ( this->IsDefault != value )
{
this->IsDefault = value;
}
}
// Add implementation to the IButtonControl.PerformClick method.
virtual void PerformClick()
{
if ( this->CanSelect )
{
this->OnClick( EventArgs::Empty );
}
}
};
using System;
using System.Windows.Forms;
using System.Drawing;
public class MyButton : ButtonBase, IButtonControl
{
private DialogResult myDialogResult;
public MyButton()
{
// Make the button White and a Popup style
// so it can be distinguished on the form.
this.FlatStyle = FlatStyle.Popup;
this.BackColor = Color.White;
}
// Add implementation to the IButtonControl.DialogResult property.
public DialogResult DialogResult
{
get
{
return this.myDialogResult;
}
set
{
if(Enum.IsDefined(typeof(DialogResult), value))
{
this.myDialogResult = value;
}
}
}
// Add implementation to the IButtonControl.NotifyDefault method.
public void NotifyDefault(bool value)
{
if(this.IsDefault != value)
{
this.IsDefault = value;
}
}
// Add implementation to the IButtonControl.PerformClick method.
public void PerformClick()
{
if(this.CanSelect)
{
this.OnClick(EventArgs.Empty);
}
}
}
Imports System.Windows.Forms
Imports System.Drawing
Public Class MyButton
Inherits ButtonBase
Implements IButtonControl
Private myDialogResult As DialogResult
Public Sub New()
' Make the button White and a Popup style ' so it can be distinguished on the form.
Me.FlatStyle = FlatStyle.Popup
Me.BackColor = Color.White
End Sub
' Add implementation to the IButtonControl.DialogResult property.
Public Property DialogResult() As DialogResult Implements IButtonControl.DialogResult
Get
Return Me.myDialogResult
End Get
Set
If [Enum].IsDefined(GetType(DialogResult), value) Then
Me.myDialogResult = value
End If
End Set
End Property
' Add implementation to the IButtonControl.NotifyDefault method.
Public Sub NotifyDefault(value As Boolean) Implements IButtonControl.NotifyDefault
If Me.IsDefault <> value Then
Me.IsDefault = value
End If
End Sub
' Add implementation to the IButtonControl.PerformClick method.
Public Sub PerformClick() Implements IButtonControl.PerformClick
If Me.CanSelect Then
Me.OnClick(EventArgs.Empty)
End If
End Sub
End Class
備註
此介面可能實作的範例為預設值和取消按鈕處理。 當表單輸入未處理的 ENTER 鍵時,預設按鈕會收到通知,就像關閉對話方塊一樣。 同樣地,每當表單上輸入未處理的 ESC 鍵時,就會通知取消按鈕,就像關閉對話方塊一樣。
給實施者的注意事項
在做為按鈕控制項的類別中實作這個介面。 此介面的成員會提供基本按鈕功能,例如提供 DialogResult 給父表單或執行 Click 事件的能力,或做為表單的預設按鈕。
屬性
DialogResult |
取得或設定當按下按鈕時傳回父表單的值。 |
方法
NotifyDefault(Boolean) |
告知控制項其為預設按鈕,使其外觀和行為能做適當的調整。 |
PerformClick() |
產生控制項的 Click 事件。 |