c# - 从类库中设置焦点

标签 c#

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

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

可能吗?

谢谢, SK保罗。

最佳答案

所有 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 项目。

关于c# - 从类库中设置焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13111246/

相关文章:

c# - Entity Framework 6.1.0 SaveChangesAsync

c# - 每 4 次循环新表行

c# webbrowser从文本框中获取其url

c# - System.ObjectDisposeException : Cannot access a disposed object. 对象名称: 'Cannot access a closed file.'

c# - 使用 LINQ 将 List<string> 与 List<object> 匹配?

c# - 将 DateTimePicker 绑定(bind)到 UTC,但以本地时间显示和操作

c# - 我使用rigidbody2D.velocity.y时出现语法错误

c# - SQLiteNet 索引和 Lambda 表达式

c# - EWS : Calendar Sharing Invitation and Extended Properties

c# - 我可以在适用于 Windows 8 的 WinRT Metro Style 应用程序上使用我现有的 .Net 4.0 类库吗