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 金鑰時,取消按鈕會被通知,就像對話框會被關閉一樣。
給實施者的注意事項
將此介面實作為按鈕控制的類別。 此介面成員會提供基本的按鈕功能,例如提供 a DialogResult 給父表單或 Click 執行事件的能力,或作為表單的預設按鈕。
屬性
| 名稱 | Description |
|---|---|
| DialogResult |
當按鈕被點擊時,會取得或設定回到父表單的值。 |
方法
| 名稱 | Description |
|---|---|
| NotifyDefault(Boolean) |
通知控制項該按鈕為預設按鈕,使其外觀與行為相應調整。 |
| PerformClick() |
為 Click 控制產生事件。 |