Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#将formname.designer.cs中生成的数据表设置为静态_C#_Winforms_Static_Element - Fatal编程技术网

C#将formname.designer.cs中生成的数据表设置为静态

C#将formname.designer.cs中生成的数据表设置为静态,c#,winforms,static,element,C#,Winforms,Static,Element,我想知道是否可以修改formname.designer.cs并将从设计模式生成的变量设置为私有的静态变量: private dtableAdapters.llist nameTable;// this to become static public static dtableAdapters.llist nameTable;//like this 我在这里读到这不是一个好方法。 也许我可以用另一种方式。以下是我想做的: 我有一个包含更多表单的表单,在面板中打开。一个表单包含一些带有数据库值

我想知道是否可以修改formname.designer.cs并将从设计模式生成的变量设置为私有的静态变量:

 private dtableAdapters.llist nameTable;// this to become static
 public static dtableAdapters.llist nameTable;//like this
我在这里读到这不是一个好方法。 也许我可以用另一种方式。以下是我想做的:

我有一个包含更多表单的表单,在面板中打开。一个表单包含一些带有数据库值的组合框。问题是,当我从另一个带有文本框的表单向数据库添加更多值时,需要再次填充组合框。我想,如果我在添加一些值后立即更新组合框,可能会很容易。 (combobox和textbox——它们在数据库中添加由combobox显示的值——形式不同)

你还有别的想法吗?我也尝试过在点击组合框时再次填充它,但是因为我有更多的组合框,所以当我快速点击一个到另一个组合框时,会出现一些致命错误

编辑:作为最后一种方法:我可以添加一个按钮并在按下按钮时填充组合框,但我想自动完成


(winforms不是web表单)

一种方法是在添加值时在FormA上触发事件。
表格B可以订阅活动并更新列表。 唯一棘手的一点是FormB需要引用FormA来连接事件

像这样的

形式

表格B


让我看看我是否明白。。。表单A有一个文本框,用于向数据库中的表添加值。表单B有一个组合框,其中包含表中的值。通过表格a添加值后,您希望表格B的组合框自动反映最新的值。是的,您理解得很好。这样做的可能性是什么?但是FormB怎么知道事件被触发了呢?其中被称为HookupListener(param)?无法添加引用,因为表单2不是由表单1启动的。Form0启动Form1,也启动Form2。似乎必须调用的是静态方法?为什么需要静态方法?如果Form0启动两个表单,它可以将FormA的引用传递给FormB的HookupListener方法。
public delegate void DataAddedEventHandler(object sender, EventArgs e);
    public partial class FormA : Form
    {
    public event DataAddedEventHandler DataAdded;
    private void AddButton_Click(object sender, EventArgs e)
    {
        //do The database stuff...

        //fire the event
        OnDataAdded();
    }

    private void OnDataAdded()
    {
        if (DataAdded != null)
        {
            DataAdded(this, new EventArgs());
        }
    }
 public void HookupListener(FormA dataform)
 {
      //hook up the event to the handler
      dataform.DataAdded += new DataAddedEventHandler(dataform_DataAdded);
 }

 void dataform_DataAdded(object sender, EventArgs e)
 {
       //refresh the combo box
 }