C# C中意外的文本框控件操作#

C# C中意外的文本框控件操作#,c#,winforms,C#,Winforms,我正在尝试在windows窗体中动态绘制textbox控件,我成功地让它绘制了textbox,但出现了意外的行为。它应该根据从XML文件中获取的3个元素绘制2个文本框,它会这样做。但是,文本框中的结果文本被弄乱了。它会切断字符,不会让我用键盘上的箭头键滚动字符串。它也不会让我去开始或结束的字符串。输出为: 我使用的代码是: NameValueCollection DatabaseConnectionList = ConfigurationManager.GetSection("data

我正在尝试在windows窗体中动态绘制textbox控件,我成功地让它绘制了textbox,但出现了意外的行为。它应该根据从XML文件中获取的3个元素绘制2个文本框,它会这样做。但是,文本框中的结果文本被弄乱了。它会切断字符,不会让我用键盘上的箭头键滚动字符串。它也不会让我去开始或结束的字符串。输出为:

我使用的代码是:

    NameValueCollection DatabaseConnectionList = ConfigurationManager.GetSection("databaseTypes") as NameValueCollection;
    int x = 80;
    int y = 70;
    for (int i = 0; i < DatabaseConnectionList.Count; i++)
    {
        TextBox T2 = new TextBox();
        T2.Text = DatabaseConnectionList.Get(i);
        T2.Size = new Size(200, 20);
        T2.Location = new Point(x, y);

        this.Controls.Add(T2);
        y += 25;
    }
NameValueCollection DatabaseConnectionList=ConfigurationManager.GetSection(“databaseTypes”)作为NameValueCollection;
int x=80;
int y=70;
for(int i=0;i
我看不出代码有任何错误,但可能我缺少了一些东西,这些东西赋予了它与使用VisualStudio绘制控件相同的功能

编辑: XML部分是:

  <databaseTypes>
    <add key="ExampleServerPrefix_T" value="Connection_String_For_ExampleServer" />
    <add key="ExampleServer2Prefix_T" value="Connection_String_For_ExampleServer_2" />
    <add key="COPYLIVE_" value="ODBC;DSN=rrrr;DATABASE=yyy;SERVER=xxxxxx;PORT=5432;" />
  </databaseTypes>

如评论中所述;发布的代码工作正常

使用simple
App.config
和提供的代码

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
      <section name="databaseTypes" type="System.Configuration.NameValueSectionHandler" />
    </configSections>
    <databaseTypes>
      <add key="ExampleServerPrefix_T" value="Connection_String_For_ExampleServer" />
      <add key="ExampleServer2Prefix_T" value="Connection_String_For_ExampleServer_2" />
      <add key="COPYLIVE_" value="ODBC;DSN=rrrr;DATABASE=yyy;SERVER=xxxxxx;PORT=5432;" />
    </databaseTypes>
</configuration>

结果如下。正如您所期望的,字符不会被“切断”(除了控件宽度太短),选择/滚动内容也很好


我想你可能在某处“吞咽”了按键/按键事件?我只知道一件事:这段代码中没有任何东西能产生您描述的效果。

没有明显的错误,是否也要共享XML(部分内容)?是的,我现在将添加它,但我不知道这是怎么回事,因为
DatabaseConnectionList
只是一个集合。嗯,上面的代码是有效的。这里有些不同的东西在起作用。代码是正确的,而且如果Get可能会因为字符串的某些部分丢失而受到指责,那么这里没有任何东西可以停止编辑。那么,这个代码叫什么?这里是否有阻止编辑的线程或某种循环?代码正在表单初始值设定项中调用。问题中代码上方的唯一内容是
public Form3(){InitializeComponent();NameValueCollection…
我正在使用App.config,使用的方式与您在回答中的方式完全相同。我不知道为什么文本框会这样做。这很奇怪。也很难描述到底发生了什么。如果这有帮助,我可以发布整个方法。不,我明天将在另一台机器上尝试,只是为了你看,可能是因为你说代码没问题,所以出了点问题。我会联系你的。嗯……情况如何?还不清楚为什么它不工作,但我让它在另一台机器上工作。