小编Abb*_*bas的帖子

简单的Windows窗体数据绑定

假设我的表单中有一个String属性(表单不实现INotifyPropertyChanged).我还创建了一个BindingSource并将其DataSource设置为表单.然后我将一个文本框绑定到我的表单上的String属性(间接地,使用BindingSource).

问题1:当我在运行时更改文本框中的值时,为什么不在String属性的setter中命中断点?我认为将控件绑定到String属性将允许自动发生此方向的更新(GUI - >成员数据)

问题2:当GUI之外的其他内容更改String属性时,如何在另一个方向(成员数据 - > GUI)上触发更新?我不想实现INotifyPropertyChanged接口并将NotifyPropertyChanged添加到setter.我认为通过使用BindingSource的ResetBindings,我至少可以手动触发它

public partial class Form1 : Form
{
    private String m_blah;
    public String Blah
    { 
        get
        {
            return m_blah;
        }
        set
        {
            m_blah = value;
        }
    }

    public Form1()
    {
        InitializeComponent();
        textBox1.DataBindings.Add(new Binding("Text", bindingSource1, "Blah",true,DataSourceUpdateMode.OnValidation));
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Blah = "Clicked!";
        this.bindingSource1.ResetBindings(false); //expecting the GUI to update and say "Clicked!"
    }
}
Run Code Online (Sandbox Code Playgroud)

c# data-binding winforms

1
推荐指数
1
解决办法
6177
查看次数

如何在C#中使用LINQ选择单个实体

我想创建一个查询,从人员列表(人员)返回特定的人(通过ID).

 public Person getThisID(int pID)
 {
     var res = from p in persons
                         where p.pID == pID
                         select p;
     return res;
 }
Run Code Online (Sandbox Code Playgroud)

但是我遇到了关于投射问题的错误.我试图投射res到人物,但它不适用于此.我该如何解决?

c# linq lambda visual-studio-2010

1
推荐指数
2
解决办法
1477
查看次数

实体框架使用扩展方法抛出异常

我的控制器中有以下代码:

public List<DockDoorViewModel> GetDoorViewModel()
{
    List<DockDoorViewModel> doors = new List<DockDoorViewModel>();

    for (int i = 1; i < 11; i++)
    {
        // This is where the Stack Trace is pointing to.
        DockDoorViewModel door = db.vwDockDoorDatas
                                   .Where(x => x.DockNo == i)
                                   .Select(x => x.ToDockDoorViewModel())
                                   .FirstOrDefault();

        if (door == null)
        {
            door = new DockDoorViewModel(i);
        }
        else
        {
            door.Items = db.vwDockDoorDatas
                           .Where(x => x.DockNo == i)
                           .Select(x => x.ToDockDoorItem())
                           .ToList();
        }

        doors.Add(door);
    }

    return doors;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试运行Web应用程序时,我收到此异常:

异常详细信息:System.NotSupportedException:LINQ to Entities无法识别方法'DockDoorMonitor.Models.DockDoorViewModel ToDockDoorViewModel(DockDoorMonitor.Models.vwDockDoorData)'方法,并且此方法无法转换为商店表达式.

这是扩展方法:

public …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc entity-framework

1
推荐指数
1
解决办法
126
查看次数

使用vbscript访问窗口的标题

我正在尝试使用VbScript获取窗口的标题.有没有办法实现它?就像我们在C#中这样做的方式

using System.Diagnostics;

Process[] processlist = Process.GetProcesses();

foreach (Process process in processlist)
{
    if (!String.IsNullOrEmpty(process.MainWindowTitle))
    {
        Console.WriteLine("Process: {0} ID: {1} Window title: {2}",
                           process.ProcessName, process.Id, process.MainWindowTitle);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# windows vbscript scripting

1
推荐指数
1
解决办法
4833
查看次数

为什么文本框点击事件未触发

我有一个文本框,它是只读的.当我点击我希望它来调用我的按钮点击事件:

private void tbFile_Click(object sender, EventArgs e)
{
    //btnBrowse_Click(sender, e);
    MessageBox.Show("test");
}
Run Code Online (Sandbox Code Playgroud)

单击文本框时,没有任何反应.我如何解决它?

更新:

private void btnBrowse_Click(object sender, EventArgs e)
{
    openFile();
}

private void tbFile_Click(object sender, EventArgs e)
{
    //btnBrowse_Click(sender, e);
    if (tbFile.Text != "")
    {
        openFile();
    }
}

public void openFile()
{
    var FD = new System.Windows.Forms.OpenFileDialog();
    FD.Filter = "DBF Files|*.DBF";
    FD.InitialDirectory = @"C:\";

    if (FD.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
        string fileToOpen = FD.FileName;
        tbFile.Text = fileToOpen;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我点击浏览按钮并选择一个文件时,浏览文件窗口再次出现.所以现在它出现了两次,文本框点击仍然不起作用.

c# events winforms

1
推荐指数
1
解决办法
4151
查看次数

将'Task <IList <T >>'转换为'IList <T>'

这是我的任务方法:

public static async Task<IList<ResourceModel>> GetResourcesByName()
Run Code Online (Sandbox Code Playgroud)

这是在另一个类中,我想使用任务方法返回的值:

 Task<IList<ResourceModel>> imagelist = RMS.SharedMobile.Adapter.ResourceAdapter.GetResourcesByName();
Run Code Online (Sandbox Code Playgroud)

我想做一个foreach循环迭代它返回的列表,但如果它是一个,那是不可能的Task.那么如何将其转换为有用的IList东西呢?

c# ilist task

1
推荐指数
1
解决办法
2050
查看次数

ConnectionString中的可变密码

我创建了连接字符串:

connection.ConnectionString = @"Provider=abcdef; Server=123....; Database=abc; User Id=user; Password=xyz"; 
Run Code Online (Sandbox Code Playgroud)

它工作得很好.我想用变量交换密码:

connection.ConnectionString = @"Provider=abcdef; Server=123....; Database=abc; User Id=user; Password="+textBox1.Text;
Run Code Online (Sandbox Code Playgroud)

我的程序显示错误:

用户登录失败:user ...(textBox.Text ="xyz")

你知道如何正确地用变量交换密码吗?

c# connection-string

1
推荐指数
1
解决办法
269
查看次数

正则表达式从网址中提取域名

我想从网址中提取域名.例如,www.Edmunds.com/Toyota_Camry_Hybrid或者http://jido.com我想拥有www.Edmunds.comjido.com

我写了以下正则表达式:

Regex.Replace(Url, @"^([a-zA-Z]+:\/\/)?([^\/]+)\/.*?$", "$2");
Run Code Online (Sandbox Code Playgroud)

它适用于第一个链接,但对于第二个链接,我得到: http:

有人可以帮我这个吗?

c# regex

1
推荐指数
1
解决办法
1228
查看次数

关闭对话框和子窗体并将结果传递给主窗体

我有C#窗体打开一个子窗体,在其中我有文本框,确定和取消按钮,

当用户单击"确定"时,我会检查与文本框中输入的机器用户的连接.
如果连接正常,我想关闭子表单,如果没有显示是\没有消息询问用户是否仍想使用输入的计算机名称.
如果答案为是,则关闭子表单,如果不是只关闭是\否问题.

在主窗体我正在检查子对话框DialogResult但似乎无法使它工作,因为this.Close传递取消结果.以下是主窗体中的代码:

DialogResult result = SetServer.ShowDialog();
if (result == DialogResult.OK)
{
    // BLA
}
Run Code Online (Sandbox Code Playgroud)

儿童表格代码

if (!PingMachine(testmachine))
{
    DialogResult dialogResult = MessageBox.Show(“No connection", "Check", 
    MessageBoxButtons.YesNo);
    if (dialogResult == DialogResult.Yes)
    {
        btnOK.DialogResult = DialogResult.OK;
    }
    else
    {
        btnOK.DialogResult = DialogResult.No;
    }
    this.Close();
}
Run Code Online (Sandbox Code Playgroud)

c# winforms

1
推荐指数
1
解决办法
519
查看次数

从字符串列表中删除空条目

我正在寻找一种更有效的方法从字符串列表中删除空字符串值.

下面的代码可以工作,但对于非常大的数据集,这似乎效率低下.有没有更有效的方法来做到这一点?

仅供参考 - 开始只是构建一个数据集,以包含一个包含空字符串的列表

public static void Main()
{       
    //Building the data set
    List<List<string>> list = new List<List<string>>();
    list.Add(new List<string> {"One", "Two", "", "Eight"});
    list.Add(new List<string> {"Three", "Five", "Six"});
    list.Add(new List<string> {"Sixteen", "", ""});
    list.Add(new List<string> {"Twenty-Eight", "Forty", "Nine"});

    //Create an empty List of a List
    List<List<string>> newList = new List<List<string>>();

    //Loop through the original list and purge each list of empty strings
    for(int i = 0; i < list.Count; i++) {
        newList.Add(list[i].Where(x => !string.IsNullOrEmpty(x)).ToList());
    }

    foreach (var s …
Run Code Online (Sandbox Code Playgroud)

c# linq list

1
推荐指数
1
解决办法
849
查看次数