Friday, November 07, 2008

WPFのButtonコントロールはClickModeプロパティを使用して、Clickイベントの発生タイミングを変更することが可能です。

ClickModeで指定可能な値はRelease, Press, Hoverがあります。規定値はReleaseです。

それぞれの動作は下記の通りです。


Release
ボタンを押して離したときにClickイベントが発生します。
Press
ボタンを押すとすぐにClickイベントが発生します。
Hover
マウスをコントロールの上に置いたときに Click イベントが発生します。

 

下図のようにボタンを3つ配置して、それぞれのClickModeを割り当てて実験してみました。

 

ClickMode設定後のXAMLは下記の通りです。

<Button Height="23" HorizontalAlignment="Left" 
        Margin="12,12,0,0" Name="Button1" 
        VerticalAlignment="Top" Width="75" ClickMode="Release">Button1</Button>
<Button Height="23" HorizontalAlignment="Left" 
        Margin="12,41,0,0" Name="Button2" 
        VerticalAlignment="Top" Width="75" ClickMode="Press">Button2</Button>
<Button Height="23" HorizontalAlignment="Left" 
        Margin="13,70,0,0" Name="Button3" 
        VerticalAlignment="Top" Width="75" ClickMode="Hover">Button3</Button>

VB.NETのソースコードは下記の通り

Partial Public Class Window1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
        MessageBox.Show("ClickMode:" + Button1.ClickMode.ToString())
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button2.Click
        MessageBox.Show("ClickMode:" + Button2.ClickMode.ToString())
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button3.Click
        MessageBox.Show("ClickMode:" + Button3.ClickMode.ToString())
    End Sub

End Class


上記を実行すると、ボタンクリック時にクリックされたボタンのClickModeをメッセージボックスに表示します。

それぞれのイベントが発生するタイミングを是非体感してみてください。

ちなみに、従来のWindowsアプリケーションではクリックの動作はReleaseが該当します。

PressやHoverは慣れないと違和感を覚えますね。


 

WPF | 入門
Friday, November 07, 2008 10:35:39 PM (Tokyo Standard Time, UTC+09:00)  #    Comments [0]  |  Trackback
Saturday, April 12, 2008

今回はPowerShellでの変数宣言時の型の指定方法について説明します。

その前にちょっと実験をしてみたいと思います。

PS > $var = 3
PS > $var.GetType()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Int32                                    System.ValueType

上記のように数値を代入すると、変数は数値型(ここではint)になります。

では、この数値型になった変数$varに文字列を代入するとどうなるでしょうか?

PS > $var ="Test"
PS > $var.GetType()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     String                                   System.Object

文字列型(string)に変更されました。このようにPowerShellの変数は、そのとき代入されている値の型となります。

PowerShellではほかの言語のようにあらかじめ型を指定することができます。

変数にあらかじめ型を指定するには、[型]$変数名 とします。

次は int型の変数 $int を作成して、3を代入します。

[int]$int = 3

$intの型を確認してみると

PS > $int.GetType()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Int32                                    System.ValueType

確かにint型になっていることを確認できます。

では、この$intへ文字列"Test"を代入しようとしたらどうでしょうか?

PS > $int = "Test"
値 "Test" を型 "System.Int32" に変換できません。エラー: "入力文字列の形式が正しくありませ
ん。"
発生場所 行:1 文字:5
+ $int  <<<< = "Test"

このように、明示的に型を指定した場合には、その型以外のデータは代入できなくなります。

次回から演算子について説明していきたいと思います。

Saturday, April 12, 2008 10:09:50 PM (Tokyo Standard Time, UTC+09:00)  #    Comments [0]  |  Trackback
Wednesday, April 02, 2008

正式にはWindows PowerShellです。 PowerとShellの間にスペースはありません。

Microsoftが開発したPowerShellというスクリプト環境を備えた新たなシェル環境です。

「新たな」とはいっても、リリースは2006年11月ですから、1年半ほど経過しています。

開発コードMonadで公開されたのは2005年6月ですから、この世に出てから約3年も経っています。

今年はWindows Server 2008, SQL Server 2008 といった新製品が続々リリースされる年で、そのほとんどにPowerShellが標準搭載されています。 そういう意味では今年がPowerShell元年になるような気がします。

従来のコマンドプロンプトはお世辞にも高機能といえるものではありませんでした。

コマンド数は少なく、拡張性にも乏しい...

PowerShellはコマンドプロンプトで実行できるコマンドはすべて実行が可能です。また、標準搭載されているコマンド(PowerShellではコマンドレットと呼びます。以下コマンドレット)は、約130あります。

さらに特筆すべきは.NET Frameworkの恩恵を受けることができることでしょう。

私は普段、VB.NETやC#で、Windowsアプリケーションを開発しています。

PowerShellは管理者向けとよく聞きますが、決してそんなことはないと思います。(管理者の方には、まさに待っていましたと言わんばかりの優れたツールです)

自分にとってPowerShellはお手軽開発環境です。その気になればWindows Formだって表示することもできますし、何よりコンパイルがいらいないのが魅力です。

コマンドプロンプトをよく利用している方には、ぜひインストールして使っていただきたいと思います。そして、そうでない人もぜひ!!

普段 .NET Frameworkを使用して開発している方はすぐに馴染むことができるでしょう。 そうでない人へは、このブログでサポートしていきたいと思っています。

ぜひ、PowerShellの世界をご一緒しませんか?

HIRO

 

 

 

Wednesday, April 02, 2008 5:43:33 PM (Tokyo Standard Time, UTC+09:00)  #    Comments [0]  |  Trackback

Theme design by Jelle Druyts

Pick a theme: