Thứ Sáu, 21 tháng 1, 2011

Những mẹo cần biết khi lập trình .NET

Chúng tôi xin đưa ra các phương pháp giải quyết các vấn đề mà các nhà phát triển .NET thường gặp. Hy vọng chúng sẽ giúp ích cho các bạn.

1. Làm thế nào giới hạn một chương trình chỉ chạy một lần

Trong form chính đổi thành như sau:

1
2
3
4
5
6
7
8
9
10
11
12
13
static void Main()
{
Process ThisProcess = Process.GetCurrentProcess();
Process [] AllProcesses = Process.GetProcessesByName(ThisProcess.ProcessName);
if (AllProcesses.Length > 1)
{
MessageBox.Show(ThisProcess.ProcessName + '' is already running'', ThisProcess.ProcessName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
Application.Run(new MainForm());
}
}

2. Di chuyển con trỏ đến dòng và cột xác định (RichTextBox)

Dùng phương thức GoToLineAndColumn

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public void GoToLineAndColumn(int Line, int Column)
{
Cursor.Current = Cursors.WaitCursor;
int Offset = 0;
int i = 0;
foreach (String L in Lines)
{
if (i <>1)
{
Offset += L.Length + 1;
}
else
{
break;
}
i++;
}
Select(Offset + Column - 1, 0);
Cursor.Current = Cursors.Arrow;
}

3.Xác định cột hiện thời. (RichTextBox )

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public int GetColumn()
{
int LineNumber = GetLineFromCharIndex(SelectionStart);
int LineOffset = 0;
int i = 0;
foreach (String Line in Lines)
{
if (i <>
{
LineOffset += Line.Length + 1;
}
else
{
break;
}
i++;
}
return SelectionStart - LineOffset + 1;
}

4. Chạy JScript.NET trong ứng dụng C#

Tạo một JScript.NET ”package” bao gồm một phương thức toàn cục (public)

1
2
3
4
5
6
7
8
9
10
11
12
package JScript
{
class Eval
{
public function DoEval(expr : String) : String
{
return eval(expr);
}
}
}
try { Result = (int) Application.UserAppDataRegistry.GetValue(''Resolution''); } catch(Exception) { }

Và thêm một reference đến chương trình C# của bạn và sử dụngư

1
2
3
4
5
6
7
JScript.Eval E = new JScript.Eval();
String Expression = ExpressionTextBox.Text;
try
{
ResultTextBox.Text = E.DoEval(Expression);
}
catch(Microsoft.JScript.JScriptException jse)

5.Lưu thông số cấu hình vào Registry

Đầu tiên vào AssemblyInfo.cs và bỏ tất cả các thông số từ AssemblyVersion:

1
[assembly: AssemblyVersion(''1.0.0.0'')]

Mặc dù mỗi lần bạn build ứng dụng khoá register sẽ thay đổi. Lưu giá trị bằng cách sau

1
2
3
4
5
6
7
8
9
Application.UserAppDataRegistry.SetValue(''Value'', Value);
Nạp lại các thông số :
try
{
Value = (int) Application.UserAppDataRegistry.GetValue(''Value'');
}
catch(Exception)
{
}

Theo diễn đàn tin học

0 nhận xét:

Đăng nhận xét