C# 复选框上方的动态复选框文本

C# 复选框上方的动态复选框文本,c#,winforms,checkbox,C#,Winforms,Checkbox,我目前正在创建动态复选框,并将它们放在如下面板上: CheckBox chk = new CheckBox(); chk.Text = new DirectoryInfo(folder).Name; chk.Location = new Point(10, i * 25); panelSubfolders.Controls.Add(chk); i++; 但是在面板上,复选框的文本不是直接在复选框的中间,而是在其上方。我怎样才能解决这个问题? 奇怪的是,我

我目前正在创建动态复选框,并将它们放在如下面板上:

  CheckBox chk = new CheckBox();
  chk.Text = new DirectoryInfo(folder).Name;
  chk.Location = new Point(10, i * 25);
  panelSubfolders.Controls.Add(chk);          
  i++;

但是在面板上,复选框的文本不是直接在复选框的中间,而是在其上方。我怎样才能解决这个问题?


奇怪的是,我添加的每个复选框都不会出现这种情况,有些看起来还可以。

不要只创建复选框,而是尝试使用空文本创建动态复选框,并创建动态asp.net标签分配文本


最后,您可以使用css

尝试确保在为复选框指定文本之前设置了AutoSize属性

CheckBox chk = new CheckBox();
chk.AutoSize = true;
chk.Text = new DirectoryInfo(folder).Name;
chk.Location = new Point(10, i * 25);
panelSubfolders.Controls.Add(chk);          
i++;

否则,您可能需要根据使用文本长度计算大小(以像素为单位)的计算结果自行设置复选框的大小。

我猜您正在添加复选框,标签正在包装。可能是因为它位于另一个元素旁边。请查看CheckBox.TextAlign属性!检查复选框的大小。也许会有帮助。