在我的C#(3.5)解決方案中,我有2個項目 - 一個類庫和WinForm項目。設置焦點從類庫
所有業務邏輯都在類庫中。當從WinForm中添加/更新數據時,如果類庫發現任何錯誤,它將引發錯誤並將焦點設置爲將WinForm中的控件關聯起來。
可能嗎?
謝謝, SKPaul。
在我的C#(3.5)解決方案中,我有2個項目 - 一個類庫和WinForm項目。設置焦點從類庫
所有業務邏輯都在類庫中。當從WinForm中添加/更新數據時,如果類庫發現任何錯誤,它將引發錯誤並將焦點設置爲將WinForm中的控件關聯起來。
可能嗎?
謝謝, SKPaul。
所有UI邏輯都應該保留在您的WinForm項目中。你將不得不將你的控制權交給類庫,以便從圖書館中設置重點,這是一個糟糕的設計。相反:
namespace ClassLibrary
{
public class Utility
{
public static string ReadData()
{
return "abc";
}
}
}
namespace Win_App
{
public partial class Form1 : Form
{
private void button2_Click(object sender, EventArgs e)
{
if (ClassLibrary.Utility.ReadData() == null)
{
MessageBox.Show("error, redo");
button2.Focus(); //you should handle this here.
return;
}
}
}
}
這裏的基本思想是在一個錯誤的情況下信號的適當的返回值。例如一個對象的空值,或一個布爾值的false。你應該在UI項目中檢查並在那裏處理。在你的情況下,設置重點應該來自WinForm項目。
感謝nawfal,我從你的例子中得到了這個想法。 –
你不能在託管代碼中引發錯誤,你可以拋出異常。 BL引發異常,其客戶(即表示,即winforms)必須捕獲異常並相應地處理它們。 –