IButtonControl 接口

允许控件用作窗体上的按钮。

**命名空间:**System.Windows.Forms
**程序集:**System.Windows.Forms(在 system.windows.forms.dll 中)

语法

声明
Public Interface IButtonControl
用法
Dim instance As IButtonControl
public interface IButtonControl
public interface class IButtonControl
public interface IButtonControl
public interface IButtonControl

备注

在何处可能实现该接口的示例是默认处理和取消按钮的处理。当为窗体输入未经处理的 Enter 键时,默认按钮收到通知,就好像要关闭一个对话框一样。同样,当在窗体中输入未经处理的 Esc 键时,取消按钮收到通知,就好像要消除一个对话框一样。

给实现者的说明 在用作按钮控件的类中实现该接口。该接口的成员将提供基本按钮功能,例如,为父窗体提供 DialogResult 或提供执行 Click 事件的功能,或用作窗体默认按钮。

示例

下面的示例从 ButtonBase 类继承,并实现 IButtonControl 接口。将实现添加到 DialogResult 属性以及 NotifyDefaultPerformClick 方法。

Imports System
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
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);
        }
    }
}
#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 );
      }
   }
};
import System.*;
import System.Windows.Forms.*;
import System.Drawing.*;

public class MyButton extends ButtonBase implements IButtonControl
{
    private DialogResult myDialogResult;

    public MyButton()
    {
        // Make the button White and a Popup style
        // so it can be distinguished on the form.
        this.set_FlatStyle(get_FlatStyle().Popup);
        this.set_BackColor(Color.get_White());
    } //MyButton

    // Add implementation to the IButtonControl.DialogResult property.
    /** @property 
     */
    public DialogResult get_DialogResult()
    {
        return this.myDialogResult;
    } //get_DialogResult

    /** @property 
     */
    public void set_DialogResult(DialogResult value)
    {
        if (Enum.IsDefined(get_DialogResult().getClass().ToType(), value)) {
            this.myDialogResult = value;
        }
    }

    // Add implementation to the IButtonControl.NotifyDefault method.
    public void NotifyDefault(boolean value)
    {
        if (this.get_IsDefault() != value) {
            this.set_IsDefault(value);
        }
    } //NotifyDefault

    // Add implementation to the IButtonControl.PerformClick method.
    public void PerformClick()
    {
        if (this.get_CanSelect()) {
            this.OnClick(EventArgs.Empty);
        }
    } //PerformClick
} //MyButton

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

请参见

参考

IButtonControl 成员
System.Windows.Forms 命名空间
Button 类
Form 类