Cursor コンストラクター
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
Cursor クラスの新しいインスタンスを初期化します。
オーバーロード
Cursor(IntPtr) |
指定した Windows ハンドルで Cursor クラスの新しいインスタンスを初期化します。 |
Cursor(Stream) |
指定したデータ ストリームで Cursor クラスの新しいインスタンスを初期化します。 |
Cursor(String) |
指定したファイルで Cursor クラスの新しいインスタンスを初期化します。 |
Cursor(Type, String) |
指定したリソースの種類を使用し、指定したリソースから Cursor クラスの新しいインスタンスを初期化します。 |
Cursor(IntPtr)
- ソース:
- Cursor.cs
- ソース:
- Cursor.cs
- ソース:
- Cursor.cs
指定した Windows ハンドルで Cursor クラスの新しいインスタンスを初期化します。
public:
Cursor(IntPtr handle);
public Cursor (IntPtr handle);
new System.Windows.Forms.Cursor : nativeint -> System.Windows.Forms.Cursor
Public Sub New (handle As IntPtr)
パラメーター
例外
handle
が Zeroです。
例
次のコード例では、カーソルの からカーソルを作成し Current 、 Handleその位置とクリッピング四角形を変更します。 結果として、カーソルは上方向に移動し、コードの実行時の位置から左の 50 ピクセルに移動します。 さらに、カーソルのクリッピング四角形がフォームの境界に変更されます (既定では、ユーザーの画面全体です)。 この例では、 と Button を使用Formして、このコードをクリックしたときにこのコードを呼び出す必要があります。
void MoveCursor()
{
// Set the Current cursor, move the cursor's Position,
// and set its clipping rectangle to the form.
this->Cursor = gcnew System::Windows::Forms::Cursor( ::Cursor::Current->Handle );
::Cursor::Position = Point(::Cursor::Position.X - 50,::Cursor::Position.Y - 50);
::Cursor::Clip = Rectangle(this->Location,this->Size);
}
private void MoveCursor()
{
// Set the Current cursor, move the cursor's Position,
// and set its clipping rectangle to the form.
this.Cursor = new Cursor(Cursor.Current.Handle);
Cursor.Position = new Point(Cursor.Position.X - 50, Cursor.Position.Y - 50);
Cursor.Clip = new Rectangle(this.Location, this.Size);
}
Private Sub MoveCursor()
' Set the Current cursor, move the cursor's Position,
' and set its clipping rectangle to the form.
Me.Cursor = New Cursor(Cursor.Current.Handle)
Cursor.Position = New Point(Cursor.Position.X - 50, Cursor.Position.Y - 50)
Cursor.Clip = New Rectangle(Me.Location, Me.Size)
End Sub
注釈
カーソル ハンドルの操作が完了したら、カーソル ハンドルを解放する必要があります。 リソースの破棄の詳細については、「 アンマネージド リソースのクリーンアップ」を参照してください。
適用対象
Cursor(Stream)
- ソース:
- Cursor.cs
- ソース:
- Cursor.cs
- ソース:
- Cursor.cs
指定したデータ ストリームで Cursor クラスの新しいインスタンスを初期化します。
public:
Cursor(System::IO::Stream ^ stream);
public Cursor (System.IO.Stream stream);
new System.Windows.Forms.Cursor : System.IO.Stream -> System.Windows.Forms.Cursor
Public Sub New (stream As Stream)
パラメーター
例
次のコード例では、 の メソッドによって作成された OpenFile からStreamカーソルをOpenFileDialog読み込みます。 メソッドが呼び出されると、 OpenFileDialog がユーザーに表示され、 が表示されます。 CUR ファイルが選択され、ダイアログが閉じられ、ファイルが開き、 Stream 返された が を使用して を Cursor作成します。
private:
void SetCursor()
{
// Display an OpenFileDialog so the user can select a cursor.
OpenFileDialog^ openFileDialog1 = gcnew OpenFileDialog;
openFileDialog1->Filter = "Cursor Files|*.cur";
openFileDialog1->Title = "Select a Cursor File";
openFileDialog1->ShowDialog();
// If a .cur file was selected, open it.
if ( !openFileDialog1->FileName->Equals( "" ) )
{
// Assign the cursor in the stream to the form's Cursor property.
this->Cursor = gcnew System::Windows::Forms::Cursor( openFileDialog1->OpenFile() );
}
}
private void SetCursor()
{
// Display an OpenFileDialog so the user can select a cursor.
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "Cursor Files|*.cur";
openFileDialog1.Title = "Select a Cursor File";
openFileDialog1.ShowDialog();
// If a .cur file was selected, open it.
if(openFileDialog1.FileName != "")
{
// Assign the cursor in the stream to the form's Cursor property.
this.Cursor = new Cursor(openFileDialog1.OpenFile());
}
}
Private Sub SetCursor()
' Display an OpenFileDialog so the user can select a Cursor.
Dim openFileDialog1 As New OpenFileDialog()
openFileDialog1.Filter = "Cursor Files|*.cur"
openFileDialog1.Title = "Select a Cursor File"
openFileDialog1.ShowDialog()
' If a .cur file was selected, open it.
If openFileDialog1.FileName <> "" Then
' Assign the cursor in the stream to the form's Cursor property.
Me.Cursor = New Cursor(openFileDialog1.OpenFile())
End If
End Sub
注釈
で stream
指定されるデータ ストリームには、カーソル (.cur) ファイルが含まれている必要があります。
Note
アニメーション カーソル (.ani ファイル) は、 クラスでは Cursor サポートされていません。
こちらもご覧ください
適用対象
Cursor(String)
- ソース:
- Cursor.cs
- ソース:
- Cursor.cs
- ソース:
- Cursor.cs
指定したファイルで Cursor クラスの新しいインスタンスを初期化します。
public:
Cursor(System::String ^ fileName);
public Cursor (string fileName);
new System.Windows.Forms.Cursor : string -> System.Windows.Forms.Cursor
Public Sub New (fileName As String)
パラメーター
- fileName
- String
読み込むカーソル ファイル。
例
次のコード例では、コントロールに顧客情報を TreeView 表示します。 ルート ツリー ノードには顧客名が表示され、子ツリー ノードには各顧客に割り当てられた注文番号が表示されます。 この例では、1,000 人の顧客がそれぞれ 15 件の注文と共に表示されます。 メソッドと EndUpdate メソッドを使用BeginUpdateすると、 TreeView の再描画が抑制され、 がオブジェクトを作成して塗りつぶす間にTreeView待機CursorがTreeNode表示されます。 この例では、オブジェクトのOrder
コレクションをCustomer
保持できる オブジェクトが必要です。 また、 にコントロールFormのインスタンスをTreeView作成している必要もあります。
// The basic Customer class.
ref class Customer: public System::Object
{
private:
String^ custName;
protected:
ArrayList^ custOrders;
public:
Customer( String^ customername )
{
custName = "";
custOrders = gcnew ArrayList;
this->custName = customername;
}
property String^ CustomerName
{
String^ get()
{
return this->custName;
}
void set( String^ value )
{
this->custName = value;
}
}
property ArrayList^ CustomerOrders
{
ArrayList^ get()
{
return this->custOrders;
}
}
};
// End Customer class
// The basic customer Order class.
ref class Order: public System::Object
{
private:
String^ ordID;
public:
Order( String^ orderid )
{
ordID = "";
this->ordID = orderid;
}
property String^ OrderID
{
String^ get()
{
return this->ordID;
}
void set( String^ value )
{
this->ordID = value;
}
}
};
// End Order class
void FillMyTreeView()
{
// Add customers to the ArrayList of Customer objects.
for ( int x = 0; x < 1000; x++ )
{
customerArray->Add( gcnew Customer( "Customer " + x ) );
}
// Add orders to each Customer object in the ArrayList.
IEnumerator^ myEnum = customerArray->GetEnumerator();
while ( myEnum->MoveNext() )
{
Customer^ customer1 = safe_cast<Customer^>(myEnum->Current);
for ( int y = 0; y < 15; y++ )
{
customer1->CustomerOrders->Add( gcnew Order( "Order " + y ) );
}
}
// Display a wait cursor while the TreeNodes are being created.
::Cursor::Current = gcnew System::Windows::Forms::Cursor( "MyWait.cur" );
// Suppress repainting the TreeView until all the objects have been created.
treeView1->BeginUpdate();
// Clear the TreeView each time the method is called.
treeView1->Nodes->Clear();
// Add a root TreeNode for each Customer object in the ArrayList.
myEnum = customerArray->GetEnumerator();
while ( myEnum->MoveNext() )
{
Customer^ customer2 = safe_cast<Customer^>(myEnum->Current);
treeView1->Nodes->Add( gcnew TreeNode( customer2->CustomerName ) );
// Add a child treenode for each Order object in the current Customer object.
IEnumerator^ myEnum = customer2->CustomerOrders->GetEnumerator();
while ( myEnum->MoveNext() )
{
Order^ order1 = safe_cast<Order^>(myEnum->Current);
treeView1->Nodes[ customerArray->IndexOf( customer2 ) ]->Nodes->Add( gcnew TreeNode( customer2->CustomerName + "." + order1->OrderID ) );
}
}
// Reset the cursor to the default for all controls.
::Cursor::Current = Cursors::Default;
// Begin repainting the TreeView.
treeView1->EndUpdate();
}
// The basic Customer class.
public class Customer : System.Object
{
private string custName = "";
protected ArrayList custOrders = new ArrayList();
public Customer(string customername)
{
this.custName = customername;
}
public string CustomerName
{
get{return this.custName;}
set{this.custName = value;}
}
public ArrayList CustomerOrders
{
get{return this.custOrders;}
}
} // End Customer class
// The basic customer Order class.
public class Order : System.Object
{
private string ordID = "";
public Order(string orderid)
{
this.ordID = orderid;
}
public string OrderID
{
get{return this.ordID;}
set{this.ordID = value;}
}
} // End Order class
// Create a new ArrayList to hold the Customer objects.
private ArrayList customerArray = new ArrayList();
private void FillMyTreeView()
{
// Add customers to the ArrayList of Customer objects.
for(int x=0; x<1000; x++)
{
customerArray.Add(new Customer("Customer" + x.ToString()));
}
// Add orders to each Customer object in the ArrayList.
foreach(Customer customer1 in customerArray)
{
for(int y=0; y<15; y++)
{
customer1.CustomerOrders.Add(new Order("Order" + y.ToString()));
}
}
// Display a wait cursor while the TreeNodes are being created.
Cursor.Current = new Cursor("MyWait.cur");
// Suppress repainting the TreeView until all the objects have been created.
treeView1.BeginUpdate();
// Clear the TreeView each time the method is called.
treeView1.Nodes.Clear();
// Add a root TreeNode for each Customer object in the ArrayList.
foreach(Customer customer2 in customerArray)
{
treeView1.Nodes.Add(new TreeNode(customer2.CustomerName));
// Add a child treenode for each Order object in the current Customer object.
foreach(Order order1 in customer2.CustomerOrders)
{
treeView1.Nodes[customerArray.IndexOf(customer2)].Nodes.Add(
new TreeNode(customer2.CustomerName + "." + order1.OrderID));
}
}
// Reset the cursor to the default for all controls.
Cursor.Current = Cursors.Default;
// Begin repainting the TreeView.
treeView1.EndUpdate();
}
Public Class Customer
Inherits [Object]
Private custName As String = ""
Friend custOrders As New ArrayList()
Public Sub New(ByVal customername As String)
Me.custName = customername
End Sub
Public Property CustomerName() As String
Get
Return Me.custName
End Get
Set(ByVal Value As String)
Me.custName = Value
End Set
End Property
Public ReadOnly Property CustomerOrders() As ArrayList
Get
Return Me.custOrders
End Get
End Property
End Class
Public Class Order
Inherits [Object]
Private ordID As String
Public Sub New(ByVal orderid As String)
Me.ordID = orderid
End Sub
Public Property OrderID() As String
Get
Return Me.ordID
End Get
Set(ByVal Value As String)
Me.ordID = Value
End Set
End Property
End Class
' Create a new ArrayList to hold the Customer objects.
Private customerArray As New ArrayList()
Private Sub FillMyTreeView()
' Add customers to the ArrayList of Customer objects.
Dim x As Integer
For x = 0 To 999
customerArray.Add(New Customer("Customer" + x.ToString()))
Next x
' Add orders to each Customer object in the ArrayList.
Dim customer1 As Customer
For Each customer1 In customerArray
Dim y As Integer
For y = 0 To 14
customer1.CustomerOrders.Add(New Order("Order" + y.ToString()))
Next y
Next customer1
' Display a wait cursor while the TreeNodes are being created.
Cursor.Current = New Cursor("MyWait.cur")
' Suppress repainting the TreeView until all the objects have been created.
treeView1.BeginUpdate()
' Clear the TreeView each time the method is called.
treeView1.Nodes.Clear()
' Add a root TreeNode for each Customer object in the ArrayList.
Dim customer2 As Customer
For Each customer2 In customerArray
treeView1.Nodes.Add(New TreeNode(customer2.CustomerName))
' Add a child TreeNode for each Order object in the current Customer object.
Dim order1 As Order
For Each order1 In customer2.CustomerOrders
treeView1.Nodes(customerArray.IndexOf(customer2)).Nodes.Add( _
New TreeNode(customer2.CustomerName + "." + order1.OrderID))
Next order1
Next customer2
' Reset the cursor to the default for all controls.
Cursor.Current = System.Windows.Forms.Cursors.Default
' Begin repainting the TreeView.
treeView1.EndUpdate()
End Sub
注釈
パラメーターは fileName
、標準カーソル (.cur) ファイルを参照する必要があります。
Note
アニメーション カーソル (.ani ファイル) は、 クラスでは Cursor サポートされていません。
適用対象
Cursor(Type, String)
- ソース:
- Cursor.cs
- ソース:
- Cursor.cs
- ソース:
- Cursor.cs
指定したリソースの種類を使用し、指定したリソースから Cursor クラスの新しいインスタンスを初期化します。
public:
Cursor(Type ^ type, System::String ^ resource);
public Cursor (Type type, string resource);
new System.Windows.Forms.Cursor : Type * string -> System.Windows.Forms.Cursor
Public Sub New (type As Type, resource As String)
パラメーター
- resource
- String
リソースの名前。
例
次のコード例では、 コンストラクターを使用してカスタム カーソルを使用する方法を示すフォームを Cursor 表示します。 カスタム Cursor は、アプリケーションのリソース ファイルに埋め込まれます。 この例では、 という名前 MyCursor.cur
のカーソル ファイルにカーソルが含まれている必要があります。 コマンド ラインを使用してこの例をコンパイルするには、次のフラグを含めます。 /res:MyCursor.Cur, CustomCursor.MyCursor.Cur
using System;
using System.Drawing;
using System.Windows.Forms;
namespace CustomCursor
{
public class Form1 : System.Windows.Forms.Form
{
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
public Form1()
{
this.ClientSize = new System.Drawing.Size(292, 266);
this.Text = "Cursor Example";
// The following generates a cursor from an embedded resource.
// To add a custom cursor, create a bitmap
// 1. Add a new cursor file to your project:
// Project->Add New Item->General->Cursor File
// --- To make the custom cursor an embedded resource ---
// In Visual Studio:
// 1. Select the cursor file in the Solution Explorer
// 2. Choose View->Properties.
// 3. In the properties window switch "Build Action" to "Embedded Resources"
// On the command line:
// Add the following flag:
// /res:CursorFileName.cur,Namespace.CursorFileName.cur
//
// Where "Namespace" is the namespace in which you want to use the cursor
// and "CursorFileName.cur" is the cursor filename.
// The following line uses the namespace from the passed-in type
// and looks for CustomCursor.MyCursor.Cur in the assemblies manifest.
// NOTE: The cursor name is acase sensitive.
this.Cursor = new Cursor(GetType(), "MyCursor.cur");
}
}
}
Imports System.Drawing
Imports System.Windows.Forms
Namespace CustomCursor
Public Class Form1
Inherits System.Windows.Forms.Form
<System.STAThread()> _
Public Shared Sub Main()
System.Windows.Forms.Application.Run(New Form1())
End Sub
Public Sub New()
Me.ClientSize = New System.Drawing.Size(292, 266)
Me.Text = "Cursor Example"
' The following generates a cursor from an embedded resource.
'To add a custom cursor, create a bitmap
' 1. Add a new cursor file to your project:
' Project->Add New Item->General->Cursor File
'--- To make the custom cursor an embedded resource ---
'In Visual Studio:
' 1. Select the cursor file in the Solution Explorer
' 2. Choose View->Properties.
' 3. In the properties window switch "Build Action" to "Embedded Resources"
'On the command line:
' Add the following flag:
' /res:CursorFileName.cur,Namespace.CursorFileName.cur
' Where "Namespace" is the namespace in which you want to use the cursor
' and "CursorFileName.cur" is the cursor filename.
'The following line uses the namespace from the passed-in type
'and looks for CustomCursor.MyCursor.cur in the assemblies manifest.
'NOTE: The cursor name is acase sensitive.
Me.Cursor = New Cursor(Me.GetType(), "MyCursor.cur")
End Sub
End Class
End Namespace 'CustomCursor
注釈
アプリケーション内にカーソルをリソースとして埋め込む方法の例を次に示します。 リソースを埋め込むには、リソース名の後にコンマ、その完全なアセンブリ パスを参照します。 埋め込みリソースからカーソルを読み込む方法については、「例」セクションを参照してください。
Using the C# compiler:
csc /resource:"MyWaitCursor.cur","MyCursors.MyWaitCursor.cur" MyCursor.cs
Using the Visual Basic compiler:
vbc /resource:"MyWaitCursor.cur","MyCursors.MyWaitCursor.cur" MyCursor.vb
Note
コンパイル時およびコード内での参照時のリソース参照は、C# コンパイラと Visual Basic コンパイラの両方で大文字と小文字が区別されます。
適用対象
.NET