2

在我的 C# (3.5) 解决方案中,我有 2 个项目 - 一个类库和 WinForm 项目。

所有业务逻辑都在类库中。在从 WinForm 添加/更新数据时,如果类库发现任何错误,它将引发错误并设置焦点以关联 WinForm 中的控件。

是否可以?

谢谢,SK保罗。

4

1 回答 1

2

所有 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;
            }
        }
    }
}

这里的基本思想是在发生错误时发出适当的返回值。例如,对象的 null 值,或 bool 值的 false。你应该在 UI 项目中检查它,并在那里处理它。因此,在您的情况下,设置焦点应该来自 WinForm 项目。

于 2012-10-28T17:40:30.467 回答