C# windows窗体选项卡式页面:从命令行在不同选项卡上启动窗体
我有一个windows窗体,我想从命令行的不同选项卡页开始。 这是因为该表单可以由time/cron服务在 用户指定 如何使表单应用程序上下文转到非默认的第一个选项卡C# windows窗体选项卡式页面:从命令行在不同选项卡上启动窗体,c#,winforms,C#,Winforms,我有一个windows窗体,我想从命令行的不同选项卡页开始。 这是因为该表单可以由time/cron服务在 用户指定 如何使表单应用程序上下文转到非默认的第一个选项卡 [STAThread] static void Main (string[] args) { Debug.WriteLine("Environment Args= {0}", args.Count()); for (int i=0; i < args.Count();
[STAThread]
static void Main (string[] args)
{
Debug.WriteLine("Environment Args= {0}", args.Count());
for (int i=0; i < args.Count(); i++)
{
Debug.WriteLine(String.Format("{0}:{1}", i, args[i]));
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form myForm = new DailyDirectories();
if (args.Count() > 0)
{
Application.Run(myForm.??? );
}
}
既然您谈论的是选项卡,我想您有一个Tabcontrol,那么为什么不在表单的加载事件中设置所需的选项卡页面呢 您可以尝试向表单类传递参数,甚至设置属性 在表单类中,您必须添加/更改源
class DailyDirectories ...
{
/// add constructor or change default constructor
pubic DailyDirectories(int tabStartIndex)
{
InitializeComponents();
this.tabControl.SelectedIndex = tabStartIndex;
}
}
测试,工作!获取选项卡页的索引似乎有点棘手。它与选项卡索引不同,并且使其可见,而不是使其处于活动状态。排序似乎取决于它是如何创建的,而不是现在您想要向用户排序选项卡。最后,我想重新调整标签,使最常用的顶部标签首先在左边。感谢您的见解。无需运行或初始化以获取参数。环境似乎随处可见。我喜欢load属性。了解事件如何在代码中渗透意味着不需要编写太多代码。
Form myForm = null;
if (args.Count() > 0)
{
// in case args[0] contains the start index for your tabControl
int tabStartIndex = int.Parse(args[0]);
myForm = new DailyDirectories(tabStartIndex);
Application.Run(myForm);
} else // e.g. start form without index
class DailyDirectories ...
{
/// add constructor or change default constructor
pubic DailyDirectories(int tabStartIndex)
{
InitializeComponents();
this.tabControl.SelectedIndex = tabStartIndex;
}
}