创建状态栏
本文关键字:状态栏 创建 | 更新日期: 2023-09-27 17:49:16
我正在使用c#脚本将表中的行从一个服务器移动到另一个服务器。请不要说我要使用SSIS组件。循环传入的数据集使用一个for循环,我想看到当前的迭代,即在GUI中的for循环索引盒子。我可以使用MessageBox.Show("Text")
,但是我需要按ok/cancel来允许代码继续。所以,我想到了用状态栏来代替。我试过了我上网了
下面示例中的this.Controls.Add(mainStatusBar);
行导致错误-
csproj。ScriptMain'不包含'Controls'的定义没有扩展方法"Controls"接受类型为的第一个参数".csproj。ScriptMain'可以找到(您是否缺少using指令)还是程序集引用?)
尽管添加了引用- System.Windows.Forms.dll
并执行了a,但仍会发生这种情况保存所有(如Ctrl+Shift+S
)。该脚本使用System.Windows.Forms;
导入了。
为什么我得到这个错误,我如何修复它?
代码——
protected StatusBar mainStatusBar = new StatusBar();
protected StatusBarPanel statusPanel = new StatusBarPanel();
protected StatusBarPanel datetimePanel = new StatusBarPanel();
private void CreateStatusBar()
{
// Set first panel properties and add to StatusBar
statusPanel.BorderStyle = StatusBarPanelBorderStyle.Sunken;
statusPanel.Text = "Application started. No action yet.";
statusPanel.ToolTipText = "Last Activity";
statusPanel.AutoSize = StatusBarPanelAutoSize.Spring;
mainStatusBar.Panels.Add(statusPanel);
// Set second panel properties and add to StatusBar
datetimePanel.BorderStyle = StatusBarPanelBorderStyle.Raised;
datetimePanel.ToolTipText = "DateTime: " +
System.DateTime.Today.ToString();
datetimePanel.Text = System.DateTime.Today.ToLongDateString();
datetimePanel.AutoSize = StatusBarPanelAutoSize.Contents;
mainStatusBar.Panels.Add(datetimePanel);
mainStatusBar.ShowPanels = true;
// Add StatusBar to Form controls
this.Controls.Add(mainStatusBar);
}
private void button1_Click(object sender, EventArgs e)
{
statusPanel.Text = "Button is clicked.";
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
statusPanel.Text = "CheckBox is checked.";
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
statusPanel.Text = "TextBox edited.";
}
程序不知道this
应该在此语句中引用表单this.Controls.Add(mainStatusBar);
你必须按照百分比建议的方法去做。
正确的用法如下:
例如public partial class someForm : Form
{
public someForm()
{
InitializeComponent();
}
}
partial class someForm
{
private void InitializeComponent()
{
this.mainStatusBar = new StatusBar();
}
}
还有,看看这篇文章:
什么时候使用&;this&;关键字?
如果你在SQL Server上运行脚本,你不能添加控制到你的脚本,因为你没有一个窗口。
你可以做的是创建一个独立的GUI应用程序,它将与脚本通信(例如通过TCP)。
或者您可以创建一个文件,并在执行一次迭代时向其中添加新的文本。
使用mTail实时查看文件内发生的情况。
mTail——http://ophilipp.free.fr/op_tail.htm
您正在使用的类没有Controls
,因为它不是Form
。
您可以通过以下方式创建Form
,并为其添加状态栏:
this.Controls.Add(mainStatusBar);
Form window = new Form();
window.Controls.Add(mainStatusBar);
window.ShowDialog();
最后一行将显示带有状态栏的窗口