Chương trình quản lí file đơn giản
Vì sử dụng thêm SQLite nên có thể sẽ không chạy đc trên tất cả các máy!
Chương trình vẫn còn rất sơ sàim chỉ mang tình chất tham khảo, ứng dụng của SQLite, nếu bạn nào có nhu cầu lấy mã nguồn thì liên hệ mình nhé, thuvienwinform@gmail.com
Chức năng chính là quản lí các file, thư mục với tên tùy chình đề dễ tìm và quản lí file thôi. Nhưng có thêm phần mô tả để giúp bạn gợi nhớ lại lược sử hoặc nguồn gốc của file đó@! Rất hữu ích với những file lâu năm đó! Chương trình chỉ hỗ trợ 500 item nếu muốn thêm thì bạn coppy file QuanLiFile trong thư ổ cài xong cut nó ra ngoài! Sau đó cài lại
Chức năng chính là quản lí các file, thư mục với tên tùy chình đề dễ tìm và quản lí file thôi. Nhưng có thêm phần mô tả để giúp bạn gợi nhớ lại lược sử hoặc nguồn gốc của file đó@! Rất hữu ích với những file lâu năm đó! Chương trình chỉ hỗ trợ 500 item nếu muốn thêm thì bạn coppy file QuanLiFile trong thư ổ cài xong cut nó ra ngoài! Sau đó cài lại
Lấy kích cỡ của 1 file bằng C#
Để lấy kích cỡ của 1 file ta dùng code sau:
Với code này ta cũng có thể tính được kích cỡ của Folder bằng cách tính tổng kích thước các file, nhưng nếu trong folder mà lại có folder nữa thì sẽ bị sai
FileInfo f_info = new FileInfo("Đường dẫn file"); int FileLength = f_info.Length;//ĐƠn vị ByteVí dụ:
FileInfo f_info = new FileInfo("C:\\a.png"); int FileLength = f_info.Length;//biến FileLength sẽ chứa kích thước của file
Với code này ta cũng có thể tính được kích cỡ của Folder bằng cách tính tổng kích thước các file, nhưng nếu trong folder mà lại có folder nữa thì sẽ bị sai
Lấy Icon của file, thư mục bằng C#
Hướng dẫn lấy Icon của file, thư mục xuất ra listview
Demo: https://www.dropbox.com/s/s3q3lrrfhdygvci/LayIconFile-thuvienwinform.rar
Bước 1: Tạo 1 project
Bước 2: Tạo 1 Class với code sau: (chú ý thay tên project của bạn vào nhé)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Runtime.InteropServices;// namespace tên_project_của_bạn { [StructLayout(LayoutKind.Sequential)] public struct SHFILEINFO { public IntPtr hIcon; public IntPtr iIcon; public uint dwAttributes; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] public string szDisplayName; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)] public string szTypeName; }; class SpyIcon { public const uint SHGFI_ICON = 0x100; public const uint SHGFI_LARGEICON = 0x0; // 'Large icon public const uint SHGFI_SMALLICON = 0x1; // 'Small icon [DllImport("shell32.dll")] public static extern IntPtr SHGetFileInfo(string pszPath, uint dwFileAttributes, ref SHFILEINFO psfi, uint cbSizeFileInfo, uint uFlags); public static System.Drawing.Icon GetIcon(string path) { SHFILEINFO sinfo = new SHFILEINFO(); IntPtr iconHwnd = SHGetFileInfo(path, 0, ref sinfo, (uint)Marshal.SizeOf(sinfo), SHGFI_ICON | SHGFI_LARGEICON | SHGFI_SMALLICON); return System.Drawing.Icon.FromHandle(sinfo.hIcon); } } }
Bước 3: Form chính như sau: (chú ý cài đặt trong các khung đỏ)
Bước 4: Code cho Form chính:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; namespace LayIconFile { public partial class Form1 : Form { int k = 0; public Form1() { InitializeComponent(); } private void listView1_DragOver(object sender, DragEventArgs e) { e.Effect = DragDropEffects.Copy;//hiệu ứng con chuột } private void listView1_DragDrop(object sender, DragEventArgs e) { string[] files = (string[])e.Data.GetData(DataFormats.FileDrop, false);//Lấy những đường dẫn file được kéo vào string fi; foreach (string filename in files) { imageList1.Images.Add(k.ToString(), SpyIcon.GetIcon(filename)); //Thêm icon cho imagelist fi = filename.Substring(Directory.GetParent(filename).ToString().Length + 1);//Lấy tên file //imageList1.Images.Add(i.ToString(), Image.FromFile(files[i])); //Cách 2 ListViewItem item = new ListViewItem(fi, k);//Tạo item mới item.Tag = filename;//Đánh dấu đường dẫn file cho item listView1.Items.Add(item);//Thêm item vào listview k++; } } private void button1_Click(object sender, EventArgs e) { Icon ic = SpyIcon.GetIcon(@"D:\isic.jpg"); Bitmap bit = ic.ToBitmap(); bit.Save(@"C:\icon.ico", System.Drawing.Imaging.ImageFormat.Icon); } private void listView1_DoubleClick(object sender, EventArgs e) { System.Diagnostics.Process.Start(listView1.SelectedItems[0].Tag.ToString()); textBox1.Text = listView1.SelectedItems[0].Tag.ToString(); } } }
Bước 5: ấn F5 rồi kéo thả vào xem sao
Đóng gói bản cài chương trình winform
Khi ta viết xong 1 chương trình tốt nhất ta nên đóng gói lại thành bản cài với các database, file dll đầy đủ, để thực hiện được công việc này ta sử dụng project Setup and Deployment. Yêu cầu cần cài đặt InstallShield
I. Hướng dẫn tải và lấy key InstallShield
- vào link: http://learn.flexerasoftware.com/content/IS-EVAL-InstallShield-Limited-Edition-Visual-Studio?lang=1033&ver=ult
- Điền đầy đủ thông tin sau đó ấn Download Now
- Lưu key lại vào chọn 1 trong 2 bản để tải về sau đó tiến hành cài đặt
- Sau khi cài đặt xong bạn thoát Visual ra sau đó vào lại visual sẽ thấy InstallShield xuất hiện và yêu cầu nhập key hoặc dùng thử, ta nhập key vào. thế là xong phần cài đặt
Xem video: http://www.youtube.com/watch?v=4rsspP-Yfn4
hoặc
Lấy tạo độ của con chuột trên form
Để thực hiện công viện này ta sử bắt sự kiện Mouse Move của Form.
Giá trị trả về của sự kiện là: e.X tọa độ x, e.Y: tọa độ y
ứng dụng có thể kết hợp draw để tạo thêm chút hiệu ứng
Lấy tọa độ của Form: https://www.dropbox.com/s/fck3n5srv9ibzs5/LayToaDoCuaChuotTrongFrom-thuvienwinform.rar
Code:
Giá trị trả về của sự kiện là: e.X tọa độ x, e.Y: tọa độ y
ứng dụng có thể kết hợp draw để tạo thêm chút hiệu ứng
Lấy tọa độ của Form: https://www.dropbox.com/s/fck3n5srv9ibzs5/LayToaDoCuaChuotTrongFrom-thuvienwinform.rar
Code:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; // // // Chú ý: ở properties của form chọn DoubleBuffered là true để đỡ lag! // // namespace LayToaDoCuaChuotTrongFrom { public partial class Form1 : Form { Graphics paper; Pen pen = new Pen(Color.Brown); Point p = new Point(); public Form1() { InitializeComponent(); } private void DrawLine(Graphics paper) { paper.DrawLine(pen, new Point(0, 0), p); } private void Form1_MouseMove(object sender, MouseEventArgs e) { textBox1.Text = e.X.ToString(); textBox2.Text = e.Y.ToString(); label1.Text = e.X.ToString(); label2.Text = e.Y.ToString(); label1.Location = new Point(e.X - 10, e.Y + 10); label2.Location = new Point(e.X + 10, e.Y - 10); p.X = e.X; p.Y = e.Y; this.Invalidate(); //Vẽ lại các phần tử } private void Form1_Paint(object sender, PaintEventArgs e) { paper = e.Graphics; DrawLine(paper); } } }
Hàm Random() lấy số ngẫu nhiên trong C#
Để lấy một số ngẫu nhiên ta dùng lớp Random()
Cú pháp:
Ví dụ:
Ứng dụng:
- Lấy ngẫu nhiêu một chữ trong bảng chữ cái:
Cú pháp:
Random TenBienRanDom = new Random(); TenBienRandom.Next(GiaTriDau, GiaTriCuoi);//Trả về giá trị kiểu int
Ví dụ:
int Numrd; string Numrd_str; Random rd = new Random(); Numrd = rd.Next(1, 100);//biến Numrd sẽ nhận có giá trị ngẫu nhiên trong khoảng 1 đến 100 Numrd_str = rd.Next(1, 100).ToString();//Chuyển giá trị ramdon về kiểu string
Ứng dụng:
- Lấy ngẫu nhiêu một chữ trong bảng chữ cái:
Random rd = new Random(); string TextRd; TextRd = Convert.ToString((char)rd.Next(65, 90));//Chư in hoa. Chữ thường: TextRd = Convert.ToString((char)rd.Next(97, 122));
Hint Text | Gợi ý trong textbox
Hint text (water text) trong C#
Có 2 cách để giải quyết vấn đề này
Cách 1: yêu cầu đã cài DotnetBar: http://thuvienwinform.blogspot.com/p/blog-page.html
Đề có chữ gợi ý trong textBox rất đơn giản, ta sẽ sử dụng control textBoxX của DotnetBar
Chỉ cần gõ chữ gợi ý vào phần waterMark Text của textBoxX là được
Chú ý: nếu cài DotnetBar rùi mà không thấy control textBoxX thì xem phần "- Thêm ToolBox của DotNetBar vào Visual Studio:" tại: http://thuvienwinform.blogspot.com/p/blog-page.html#Huong-dan-add-control-dotnetbar
Cách 2: không cần cài DotnetBar
- Nhưng mình nghĩ thì cài DotnetBar luôn đi vì nó có nhiều cái sẵn có rất hay!
- Để thực hiện công viện này với textbox mặc định của visual thì cần thiết kế 1 lớp, đó là watermark: http://www.codeproject.com/Articles/27849/WaterMark-TextBox-For-Desktop-Applications-Using-C
Kết nối C# đến SQLite
Hướng dẫn đầy đủ các thao tác giữa SQLite và winform (cụ thể là C#) .Như bài viết trước chúng ta đã giới thiệu sơ qua về SQLite. Hôm nay mình sẽ hướng dẫn các bạn chi tiết các bước kết nối từ C# đến CSDL của SQLite, rất đơn giản thôi.
Demo: https://www.dropbox.com/s/cjmq9o4091uw0iq/C%23-SQLite-thuvienwinform.rar
Bắt đầu!
Bước 1: ta phải có database đã, trong database có ít nhất 1 bảng. (Xem hướng dẫn tạo database và bảng với SQLite: http://thuvienwinform.blogspot.com/2013/10/SQLite-chay-ung-dung-su-dung-da-tabase-tren-may-khong-cai-sql.html).
Bước 2: Tạo 1 project mới có kiểu như sau: gồm 1 button và 1 datagridview
Bước 3: Add System.Data.SQLite vào project này (2 bước)
Bước 3.1: Chuột phải vào References -> Manage Nuget Packages...
Bước 3.2: làm như hình để thêm thư viên sử dụng SQLite
Chú ý: ấn vào All cho nó load xong hẵng tìm kiếm
Install xong thì using System.Data.SQLite;
Bước 4: Lập trình lấy dữ liệu ra (sau khi chạy sẽ gặp lỗi những không sao, code xong hãy chuyển qua bước 5):
OK ấn F5 và thưởng thức
Tải thư viện SQLite bằng Packet Manage Console
- vào Package Manager Console .
- Gõ vào Install-package System.Data.SQLite xong ấn Enter
Kết quả như vậy là OK
Demo: https://www.dropbox.com/s/cjmq9o4091uw0iq/C%23-SQLite-thuvienwinform.rar
Bắt đầu!
Bước 1: ta phải có database đã, trong database có ít nhất 1 bảng. (Xem hướng dẫn tạo database và bảng với SQLite: http://thuvienwinform.blogspot.com/2013/10/SQLite-chay-ung-dung-su-dung-da-tabase-tren-may-khong-cai-sql.html).
CSDL chứa 1 bảng tb1 gồm 2 cột ID và Name (đã tạo ở bài viết trước)
Bước 2: Tạo 1 project mới có kiểu như sau: gồm 1 button và 1 datagridview
Bước 3: Add System.Data.SQLite vào project này (2 bước)
Bước 3.1: Chuột phải vào References -> Manage Nuget Packages...
Bước 3.2: làm như hình để thêm thư viên sử dụng SQLite
Chú ý: ấn vào All cho nó load xong hẵng tìm kiếm
Bước 4: Lập trình lấy dữ liệu ra (sau khi chạy sẽ gặp lỗi những không sao, code xong hãy chuyển qua bước 5):
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SQLite; namespace SQLite { public partial class Form1 : Form { SQLiteConnection conn = new SQLiteConnection("Data Source = test.db"); //Cú pháp: Data Source = Đường dẫn đến file database. Ví dụ: Data Source = C:\test.db hoặc copy file database vào cùng thư mục public Form1() { InitializeComponent(); this.button1.Click += new System.EventHandler(this.button1_Click);//Thêm sự kiện click conn.Open();//Mở kết nối } private void button1_Click(object sender, EventArgs e) { SQLiteDataAdapter da = new SQLiteDataAdapter("Select * From tb1", conn);//Chọn toàn bảng DataTable dt = new DataTable("Lite"); da.Fill(dt);//Xuất dữ liệu ra bảng dataGridView1.DataSource = dt; } } }
Tải thư viện SQLite bằng Packet Manage Console
- vào Package Manager Console .
- Gõ vào Install-package System.Data.SQLite xong ấn Enter
Kết quả như vậy là OK
SQLite Giải pháp cho những máy không cài SQL | Hướng dẫn cơ bản: tạo databse, lưu database, đọc database
SQLite là một hệ quản trị CSDL rất gọn nhẹ! Với những ứng dụng sử dụng đến CSDL chỉ chạy được trên những máy cài hệ quản trị CSDL (cụ thể là SQL Server), còn những máy không cài được thì sao, sẽ không chạy được. Nhưng đừng lo, với SQLite bạn vẫn chạy các ứng dụng đó trên các máy khác được. Vì SQLite không cần cài đặt, file dll của nó chưa đến 1MB.
Công cụ sử dụng là: sqlite3.exe (501KB): https://www.dropbox.com/s/6ag8gb47ryyvsaj/SQLite-thuvienwinform.rar
Giải nén ta được file test.db (ví dụ database ở dưới) và sqlite3.exe bạn có thể coi nó là SQL Server vậy, ta thực hành các câu lệnh với nó xong chuyển qua winform cũng tương tự thôi.
Hoặc ban có thể sử dụng SQLite Studio: http://sqlitestudio.pl/?act=download (2MB)
* Sử dụng SQLite Studio
- Thêm/tạo CSDL
- Tạo bảng
- Thêm dữ liệu vào bảng
SQLite Studio rất nhẹ và trực quan như kiểu SQL Server luôn! Lúc đầu nên dùng sqlite3.exe để thông thạo câu lệnh
1. Tạo Database cho SQLite:
Cú pháp:
attach database 'ten_database.db' as 'TenDaiDienChoDatabase';
ví dụ:
attach 'test.db' as 'db';
khi đó trong cùng folder sẽ xuất hiện 1 file test.db
2. Tạo bảng dữ liệu trong database vừa tạo:
Cú pháp:
Create table TenBang ( Cot1 KieuDuLieu, Cot2 KieuDuLieu, ... Cotn KieuDuLieu );
Ví dụ:
Create table tb1 (
ID int,
Cot2 nvarchar(50),
);
Vậy là ta đã có 1 bảng tên tb1 với 2 cột là ID kiểu int và cột Name kiểu nvarchar.
Tham khảo thêm các kiểu dũ liệu: http://www.tutorialspoint.com/sqlite/sqlite_data_types.htm
3. Chèn dữ liệu vào bản (Giống SQL server)
Cú pháp
Insert Into Tenbang (TenCot) Values (GiaTri);
Ví Dụ:
Insert Into tb1 (ID, Name) Values (1, 'Nguyen Van X');
- Để xem dữ liệu trong bảng ta cũng sử dụng cú pháp Select * From tenbang;
kết quả trả về là: 1|Nguyen Van X
4. Lưu bảng
Cú pháp:
.backup TenFileDatabase
5. Đọc lại dữ liệu từ database:
Cú pháp:
.restore TenFileDatabase Select * From TenBang;
- Chú ý: sqlite3.exe và file database cùng thư mục
OK.
- Để xem một số câu lệnh ta gõ vào .help
Control NotifyIcon trong C# | Tạo icon trên khay hệ thống
Đầy đủ cách sử dụng NotifyIcon trong C#
Các Icon trong khay hệ thống (có thể kéo ra ngoài)
- Demo NotifyIcon: https://www.dropbox.com/s/v1ajn6w6suzidiu/NotifyIcon-thuvienwinform.rar- Sử dụng cơ bản giống như trong demo.
- Tác dụng chính của nó là để kích hoạt lại Form khi nó bị ẩn xuống (Hide). Các thuộc tính của nó như sau:
Tên
thuộc tính
|
Chức
năng
|
(name)
|
Tên của NotifyIcon. Nó như tên biến vậy
|
BallootipIcon
|
Biểu tượng thông báo hiện ra khi ấn vào Icon này (phải kết hợp sự kiện
Click)
|
BalloontipText
|
Chữ hiện ra khi ấn vào Icon
|
ContextMenuStrip
|
Menu lựa chọn khi ấn chuột phải vào Icon
|
ContextMenuTitile
|
Tiêu để chữ hiện ra khi tác động vào Icon
|
Icon
|
Icon (biểu tượng) hiện ở khay hệ thống
|
Text
|
K có tác dụng lắm J
|
- 2 Sự kiện hay sử dụng đối với NotifyIcon là: Click và MouseDoubleClick.
+ Click: sự kiện khi ấn vào biểu tượng trong khay hệ thống
+ DoubleClick: khi click kép vào nó (để hiện Form trở lại)