Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.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# 动态文本框间距问题_C#_Winforms - Fatal编程技术网

C# 动态文本框间距问题

C# 动态文本框间距问题,c#,winforms,C#,Winforms,我正在尝试在winforms应用程序中创建动态文本框。它正确创建的原因是没有正确间隔。我做错了什么 private void createTextBoxes() { int width = 69; int height = 20; int spacing = 32; TextBox[] subAmt = new TextBox[12]; for (int i = 0; i <= 11; ++i) { subAmt[i] = new TextBox();

我正在尝试在winforms应用程序中创建动态文本框。它正确创建的原因是没有正确间隔。我做错了什么

private void createTextBoxes()
{

  int width = 69;
  int height = 20;
  int spacing = 32;
  TextBox[] subAmt = new TextBox[12];
  for (int i = 0; i <= 11; ++i)
  {
      subAmt[i] = new TextBox();
      subAmt[i].Size = new Size(width, height);
      subAmt[i].Margin = new Padding(3);
      subAmt[i].Location = new Point(279, (i * height) + spacing); // <-- this is should space it out but does not
      subAmt[i].KeyPress += new KeyPressEventHandler(txtAmt_KeyPress);

       plSubscription.Controls.Add(subAmt[i]);

   }
}
private void createTextBox()
{
整数宽度=69;
整数高度=20;
整数间距=32;
TextBox[]subAmt=新的TextBox[12];

对于(inti=0;i我测试了你的代码,它运行正常。有什么问题吗


您不能在单线模式下更改文本框高度,并且在代码中,您将其设置为低于实际高度


使用以下命令:

        int width = 69;
        int height = 10;
        int spacing = 0;
        TextBox[] subAmt = new TextBox[12];
        for (int i = 0; i <= 11; ++i)
        {
            subAmt[i] = new TextBox();
            subAmt[i].Size = new Size(width, height);
        // mycode
            height = subAmt[i].Height;
        // ***
            subAmt[i].Margin = new Padding(3);
            subAmt[i].Location = new Point(279, (i * height) + spacing); // <-- this is should space it out but does not

            this.Controls.Add(subAmt[i]);
        }
int-width=69;
整数高度=10;
整数间距=0;
TextBox[]subAmt=新的TextBox[12];

对于(int i=0;i我刚刚替换了您的
createTextBox()
这些值:

int width = 69;
int height = 20;
int spacing = 32;
使用
createCombo()
值:

int width = 79;
int height = 24;
int spacing = 28;
我得到了以下结果


你的代码运行得很好,请附上你想要的屏幕截图。我不确定是否可以附上屏幕截图,但问题是每个文本框之间没有间距,所以你希望每个
文本框
都放在组合框前面?如果你不能附上屏幕截图,那么用简单的话解释一下你想要什么..看我的屏幕截图当你做这类事情时,st需要像组合框一样的间距。将其视为一个二维单元格数组,然后定位每个组件(基于水平和垂直对齐)在单元格内。也就是说,一行中的所有单元格都有相同的顶部和高度,一列中的所有单元格都有相同的宽度和左侧。请参阅我对@Shaharyarn的答复。我不确定是否理解您的意思,但会尝试。我甚至添加了PaddingStrange。我之前添加了PaddingStrange。它不起作用,现在可以了。谢谢
int width = 79;
int height = 24;
int spacing = 28;