C# C中意外的文本框控件操作#
我正在尝试在windows窗体中动态绘制textbox控件,我成功地让它绘制了textbox,但出现了意外的行为。它应该根据从XML文件中获取的3个元素绘制2个文本框,它会这样做。但是,文本框中的结果文本被弄乱了。它会切断字符,不会让我用键盘上的箭头键滚动字符串。它也不会让我去开始或结束的字符串。输出为: 我使用的代码是:C# C中意外的文本框控件操作#,c#,winforms,C#,Winforms,我正在尝试在windows窗体中动态绘制textbox控件,我成功地让它绘制了textbox,但出现了意外的行为。它应该根据从XML文件中获取的3个元素绘制2个文本框,它会这样做。但是,文本框中的结果文本被弄乱了。它会切断字符,不会让我用键盘上的箭头键滚动字符串。它也不会让我去开始或结束的字符串。输出为: 我使用的代码是: NameValueCollection DatabaseConnectionList = ConfigurationManager.GetSection("data
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,使用的方式与您在回答中的方式完全相同。我不知道为什么文本框会这样做。这很奇怪。也很难描述到底发生了什么。如果这有帮助,我可以发布整个方法。不,我明天将在另一台机器上尝试,只是为了你看,可能是因为你说代码没问题,所以出了点问题。我会联系你的。嗯……情况如何?还不清楚为什么它不工作,但我让它在另一台机器上工作。