Другой вариант - использовать shlex.split . Это особенно удобно, если у вас есть строка аргументов CLI:
import shlex
argString = '-vvvv -c "yes" --foo bar --some_flag'
args = parser.parse_args(shlex.split(argString))
Граничное свойство используется любым механизмом расположения, который Ваш хост управления (Панель, например) использует любым способом, которым считает целесообразным механизм расположения. Однако это лучше всего используется для интервала, как Вы предполагаете. Просто прочитайте документацию для того определенного механизма расположения.
Это может быть очень удобно при использовании FlowLayoutPanel или TableLayoutPanel, например - чтобы или уменьшить дополнение по умолчанию или растянуть вещи немного. Очевидно, если Вы пишете поставщику пользовательского макета, можно использовать Поле однако, Вы считаете целесообразным.
Как сказанный Philip Rieck, граничное свойство только уважают контейнерные средства управления, которые выполняют расположение. Вот пример, который делает это довольно ясным как TableLayoutPanel
отношения свойство Margin:
using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
TableLayoutPanel pnl = new TableLayoutPanel();
pnl.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50));
pnl.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50));
pnl.Dock = DockStyle.Fill;
this.Controls.Add(pnl);
Button btn1 = new Button();
btn1.Text = "No margin";
btn1.Dock = DockStyle.Fill;
Button btn2 = new Button();
btn2.Margin = new Padding(25);
btn2.Text = "Margin";
btn2.Dock = DockStyle.Fill;
pnl.Controls.Add(btn1, 0, 0);
pnl.Controls.Add(btn2, 1, 0);
}
}
}
Я верю единственной.NET 2,0 встроенных средств управления, которые уважают это свойство, FlowLayoutPanel
и TableLayoutPanel
; надо надеяться, сторонние компоненты уважают его также. Это не имеет в основном никакого эффекта в других сценариях.