2017-01-17 2 views
1

winformsライブラリでmouseWheelイベントがどのように機能するかを把握したいと思います。WinForms MouseWheelイベントはどのようにF#で動作しますか?

それは私が君たちのいずれかが私に言うことを願ってF#

に来るとき学ぶための任意の良い例は決してありませんが。

私はこのような何かを考えていた:

onMouseWheelEvent = 
     if MouseWheel event = scroll forward then 
     printfn "zooming in" 
     else 
     printfn "zooming out" 

を、私はそれが私が投稿していますいくつかの愚かなコードである知っているが、私は文字通りカントは、WinFormsの上の何かを見つけることは、それが存在する以外MouseWheelEventが。それはどのように動作するのか不思議です。

ありがとうございます。

+2

あなたが他の言語のために見られるのと同じ例を使用してください。構文はわずかに異なるかもしれませんが、それはまだ同じ.NET Frameworkです。同じイベントハンドラはすべての言語で動作します。 –

+2

"*私は文字通りwinforms mousewheelevent上に存在するもの以外のものを見つけることはできません。どのように動作するのかは疑問です*"いつものように[https://msdn.microsoft.com/en-us/library/ system.windows.forms.control.mousewheel.aspx#備考)は良いスタート地点です。 – ildjarn

+1

winformsはF#(または他の新しい言語を学習するための特別な遊び場です)という前提に挑戦します。 。 F#の学習では、関数、データ構造、不変性、F#ライブラリ関数などのコア概念に焦点を当てます。最近他の質問に投稿したコードのコード品質を改善する余地がかなりあります。 –

答えて

6

は、F#インタラクティブ(fssnip from Tomas Petricek上の同様の例の礼儀)でこれを実行してみてください:

open System.Windows.Forms 

// Create form, label and add label to form 
let form = new Form(Text = "Scroller Test") 
let label = new Label() 
form.Controls.Add(label) 

// register mousewheel event handler and capture scrolling 
form.MouseWheel.Add(fun e -> 
    match e.Delta with 
    | n when n > 0 -> label.Text <- "Scrolled up" 
    | n when n < 0 -> label.Text <- "Scrolled down" 
    | _ ->()) // making compiler happy even though e.Delta cannot be 0 

// Show the form (in F# Interactive) 
form.Show() 
4

あなたはF#インタラクティブを使用している場合、あなたはMouseWheelイベントがどのように動作するかをテストするために書くことができる最も簡単な方法は、このようなものです:あなたは、コードを選択して、F#インタラクティブ(Altキーにそれを送信すると

open System.Windows.Forms 

let frm = new Form(Visible=true) 
frm.MouseWheel.Add(fun e -> 
    printfn "%A" e.Delta 
) 

+ ほとんどのF#エディターでと入力してください)、フォームが表示されます。スクロールすると、Deltaは、スクロールしたときの上下を示すマイナスの値またはポストビー(負帰属)番号になります。

これをスタンドアロンアプリケーションとして実行する場合は、数字を別の場所に表示する必要があります(ラベルを使用してください)。Application.Run(frm)を追加してアプリケーションを起動する必要があります。

私は、WinFormsはおそらくほとんどの人がユーザーインターフェイスアプリケーションを開発するために使用しているものではないと同意しますが、問題はありません.WinFormを使って完璧なアプリケーションを構築し、F#を学ぶことができます。 F# book I wrote some time agoにはたくさんのWinFormsの例があります。

関連する問題