Windows Form – Trình nghe nhạc đơn giản

Để củng cố kiến thức về C# , cũng như tìm hiểu thêm những tính năng mà C# hỗ trợ , hôm nay tôi sẽ trình bày về cách làm 1 ứng dụng dùng để nghe nhạc.

Do Microsoft .NET đã hỗ trợ sẵn thư viện Windows Player nên việc làm khá đơn giản

Bước 1: thêm thư viện

Để thêm Thư viện của Windows Player , tại Toolbox của Visual , ta có thể thêm 1 phạm trù (chuột phải vào 1 phạm trù đang có -> chọn Add Tab) , đặt tên phạm trù là  ” Windows Player ” chẳng hạn

Image

Sau đó , thêm chức năng cho phạm trù Windows Player (chuột phải vào phạm trù Window Player vừa tạo -> Choose Items… -> Tại bảng Choose Toolbox items , chọn tab COM Components -> tìm Windows Media Player -> OK)

Image

Bước 2: giao diện

Sau khi add , kéo Windows Media Player vào trong Form, căn chỉnh sao cho đều

Ta được giao diện như sau:

Image

Bước 3: các chức năng

Thêm Menu Strip vào Form , Menu sẽ gồm 2 phạm trù đơn giản là:
–     File : Open
–     Controls : Play, Pause, Stop

Image

Với chức năng Open (mở file nhạc) , ta double click vào Open trên Form đang tạo , sẽ sinh ra một phương thức trong class Form1.cs, trong phương thức này , ta dùng OpenFileDialog để chọn file nhạc

Image

Như vậy , mỗi lần chọn nhạc thông qua Open , chương trình sẽ chơi bản nhạc mà mình chọn , để phong phú hơn , ta thêm vào các controls Play, Pause, Stop cho chương trình

Tương tự như việc tọa phương thức cho Open , ta tạo phương thức cho Play , Pause, Stop , trong mỗi phương thức , ta chỉ cần gọi thông qua Controls đã được định nghĩa sẵn của Windows Media Player

Image

Như vậy là ta đã được một chương trình nghe nhạc đơn giản , các bạn cũng có thể thêm vài chức năng tùy thích theo ý mình ^_^

Windows Form – Từ điển online

Học từ vựng là một điều quan trọng để cải thiện việc học tiếng Anh, khi chúng ta vô tình gặp 1 từ nào đó , cảm thấy nó cần thiết nhưng mở 1 chương trình từ điển hay tra trực tuyến trên mạng lại khá tốn thời gian , làm mất đi sự đam mê tiếng anh trỗi dậy trong giây lát . Vì thế , chúng ta cần 1 chương trình có thể mở trong vòng 1s, tra từ 24/24 và nội dung vẫn đầy đủ.

C# hỗ trợ việc lấy nguồn từ trang web nên nội dung trình bày hôm nay , tôi sẽ trình bày về việc lấy nguồn trang web , cụ thể là tratu.soha.vn vì tôi thấy trang đó rất đầy đủ nội dung của mỗi từ, sau đó tách chuỗi source để được nội dung theo ý muốn , tuy nhiên để làm được thì vẫn cần chút kiến thức về html.

Giao diện Form:

Image

Bước 1:

Để lấy được source code của trang html , cần System.Net và System.IO để lấy và đọc luồng gửi từ từ trang html về. Cách lấy như sau:

Image

Url là chuỗi chứa đường dẫn trang web “http://tratu.soha.vn…

Web tratu.soha.vn có đặc điểm là :
–   http://tratu.soha.vn/dict/”kiểu dịch”/”Từ dịch

Giả sử ta tra từ Moon theo Anh – Việt thì:
url = “http://tratu.soha.vn/dict/en_vn/Moon

Còn theo Việt – Anh thì :
url = “http://tratu.soha.vn/dict/vn_en/Moon

Với việc cố định 2 chức năng như vậy , ta có thể thiết lập trong Form chức năng tra từ theo Anh – Việt và Việt – Anh.

Chuỗi hold trên hình là 1 chuỗi bắt đầu tử <html> đến </html> , ta sẽ cắt phần nội dung chính của trang tratu.soha.vn để hiển thị trên textbox trên Form.

Để biết cắt từ chỗ nào đến chỗ nào thì ta mở souce code lên để xác định , trong tratu.soha.vn thì rất rõ ràng ở chỗ , nó chỉ ra chỗ nào là bắt đầu và kết thúc nội dung

Image

Cắt ra :

Image

Chỗ “Lấy từ « <a” là vì tôi nhận thấy tới khúc chỗ đó là hết cần nên tôi cắt ngay từ khúc đó chứ k phải là “<!– end content –>”.

Bước 2:

Lọc lấy nội dung bằng cách , dùng 1 biến cờ để đánh dấu mỗi khi gặp kí tự ‘<‘ thì nội dung đó coi như bỏ , và khi gặp kí tự ‘>’ thì đánh dấu là sẽ lấy nó.

Sau khi lọc ra thì ta sẽ được 1 đống nội dung không có hàng có lối , để xuống hàng cho mỗi dòng thì ta phải quay trờ lại lúc lọc , ta để ý rằng nội dung sẽ xuống dòng khi gặp các cụm kí tự sau:
–  </h*> * là 1 số
–  </dd>
–  </p>
–  </li>
Vì vậy , mỗi khi gặp 1 cụm như thế ta sẽ + vào chuỗi kết quả “\r\n” để xuống dòng ,bạn cũng có thể tự phân tích thêm để phân theo khối .

Bước 3:

Chương trình cần có 1 nút mở trang html mà chương trình đang tra để người dùng có thể xem chi tiết nội dung trong đó (chắc chắn sẽ có vài nội dung mà ta chưa bắt dẫn đến nội dung xếp lộn xộn), để làm được điều đó , trong hàm click của nút Detail sẽ cần có một lệnh mở trang html lên :

Image

Trong hàm đã bắt các lỗi như chưa có trình duyệt để mở ….

Vậy là ta đã có được 1 chương trình tra từ nhanh gọn , có thể tự sửa hoặc thêm vài chức năng theo ý muốn.

Hướng phát triển thêm : có thể lưu hết nội dung của mỗi 1 từ sau khi tra lại đễ khi quên thì có thể xem lại , sau đó ta có thể viết thêm 1 chức năng tra offline bằng cách sử dụng những từ mà ta đã từng tra.

File cài đăt :http://www.mediafire.com/?z2jz41mph5vw5n2

( lưu ý: cần frame 4.5 để chạy ứng dụng )

Windows Form – Tạo một giao diện có thể vẽ

Mới học c# , ắt hản nhiều bạn còn bỡ ngỡ với sự phong phú của các lớp , cũng như những sự kiện có vẻ xa lạ cho người mới học , vì vậy hôm nay mình sẽ trình bày 1 phần nhỏ về đồ họa trong c# mà cụ thể là cách bắt 3 sự kiện của chuột trên form.

Sau khi new 1 project:

Bước 1:

– Để chọn sự kiện của form , các bạn sẽ thiết lập tại đây , biểu tượng sấm sét màu vàng tương đương với sự kiện của form ( lưu ý : ở đây là vẽ trực tiếp trên form , các bạn cũng có thể vẽ trên 1 panel chẳng hạn , thì cần chọn panel , sau đó mới tìm sự kiện của panel để thiết lập … )

Image

– Để tạo sự kiện , cần double click vào tên sự kiện cần tạo , chương trình sẽ hiển nhiên tạo ra 1 phương thức (hàm) trong form.cs.

– Sự kiện MouseDown : nhấp chuột
Sự kiện MouseMove : di chuyển chuột trong khi nhấp
Sự kiện MouseUp : thả chuột

Bước 2: 

– Để tạo tính logic cho cả 3 , ta cần 1 biến kiểm tra các sự kiện. Ngoài ra , chúng ta cũng phải có 1 kiểu dữ liệu graphic để vẽ , chúng ta sẽ khai báo và khởi tạo chúng như sau :

Image

Bước 3:

– Ở sự kiện mouse down , tức là vị trí bắt đầu , chúng ta sẽ gán biến canPaint có trị là true ,  kèm theo đó là lưu giữ lại vị trí của chuột ngay lúc nhấp chuột bằng biến x (tọa độ ngang) , y ( tọa độ dọc)

Image

– Ở sự kiện mouse move , chúng ta sẽ vẽ 1 đường thẳng từ vị trí lúc nhấp chuột cho tới vị trí hiện tại của chuột , rồi tiếp tục gán vị trí hiện tại của chuột cho biến x,y để vẽ tiếp mà bắt đầu là 1 vị trí mới

Image

– Cú pháp của DrawLine(kiểu của pen, vị trí bắt đầu[x,y] , vị trí kế thúc [x,y]).

– Ở sự kiện mouse up , chỉ cần cho biến canPaint = false , kết thúc một quá trình vẽ

Image

Sau khi hoàn thành chương trình , build chương trình để kiểm tra thành quả mình làm được ^_^.

Hướng phát triển thêm: 

– Thêm chức năng chọn màu , chọn kích cỡ của đường vẽ

– Cho phép vẽ hình vuông , hình tròn, elip, chữ nhật , thoi ….

Chúc bạn thành công ^_^