2012-02-22 270 views
1

我是F#的初學者,但在C#中稍早編寫了一些。 我試圖找出如何寫一個ButtonClicEvent將從一個按鈕AppendText通過(或其它地方)到一個文本框一個現有文本..F#按鈕點擊事件

這是從C#:

private void Btn_Click(object sender, EventArgs e) 
{ 
    // if the eventhandler contains more than one button 
    var btn = (sender as Button); 

    textBox.AppendText(btn.Text); 
} 

需要知道如何在F#中做到這一點。

+0

你有什麼企圖這麼遠嗎? – Dan 2012-02-22 16:43:32

+0

我已經開始了這樣的事情:Btn.Click.Add(fun evArgs - > – ISo 2012-02-22 16:49:21

+0

看看這個示例:http://geekswithblogs.net/MarkPearl/archive/2010/06/09/simple-mouse-move -event-in-f-with-winforms.aspx – 2012-02-22 16:49:55

回答

6
btn.Click.Add(fun _ -> textBox.AppendText(btn.Text)) 
+0

謝謝,它的工作。它太容易問:-) ..更早的時候我得到了錯誤信息阿布德AppendText沒有定義 – ISo 2012-02-22 16:58:28

+0

@ISO,請不要忘記如果它對你有幫助,請將答案標記爲正確。 – Dmitry 2012-02-22 18:57:27

5

有一個很好的網站F# Snippets

從該網站的相關例子:

open System 
open System.Drawing 
open System.Windows.Forms 

// Create form, button and add button to form 
let form = new Form(Text = "Hello world!") 
let btn = new Button(Text = "Click here") 
form.Controls.Add(btn) 

// Register event handler for button click event 
btn.Click.Add(fun _ -> 
    // Generate random color and set it as background 
    let rnd = new Random() 
    let r, g, b = rnd.Next(256), rnd.Next(256), rnd.Next(256) 
    form.BackColor <- Color.FromArgb(r, g, b)) 

// Show the form (in F# Interactive) 
form.Show() 
// Run the application (in compiled application) 
Application.Run(form)