gpt4 book ai didi

c# - 使用 Windows 窗体中的按钮

转载 作者:可可西里 更新时间:2023-11-01 09:59:52 26 4
gpt4 key购买 nike

我正在进行一个小项目,尝试制作自己的网络浏览器。

我发现如果没有“新标签”功能,网络浏览器就一文不值,所以我想我可以将按钮用作标签,每次按下“ctrl + T”时都会出现一个新按钮。

我遇到的问题是:- 按钮排列方式使我可以在每次按下“ctrl + T”时生成一个新按钮

-当按钮被生成时,它应该是可点击的,并且在点击时被禁用,直到另一个选项卡(按钮)被点击。


目前我专注于让 1 个选项卡正常工作,下面是一个示例:

    private void TB_Address_KeyPress(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.T && e.Modifiers == Keys.Control)
{
Button tabButton = new Button();
tabButton = new System.Windows.Forms.Button();
tabButton.BackColor = System.Drawing.SystemColors.ActiveCaptionText;
tabButton.Cursor = System.Windows.Forms.Cursors.Hand;
tabButton.ForeColor = System.Drawing.Color.Lime;
tabButton.Location = new System.Drawing.Point(154, 32);
tabButton.Name = "tabButton";
tabButton.Size = new System.Drawing.Size(152, 23);
tabButton.TabIndex = 13;
tabButton.Text = "Tab 2";
tabButton.UseVisualStyleBackColor = false;
tabButton.Click += new System.EventHandler(this.tabButton_Click);
Controls.Add(tabButton);
}
}

我也有这个点击功能:

    private void tabButton_Click(object sender, EventArgs e)
{
tab_1.Enabled = true;
tabButton.Enabled = false;
}

“tab_1”是在设计模式下创建的按钮。“tabButton.Enabled”被标记为红色,因为它找不到 tabButton。我明白为什么找不到它了。但是我不知道如何以好的方式解决问题。

最佳答案

您正在使用此行将 tabButton_Click 分配给所有按钮:

 tabButton.Click += new System.EventHandler(this.tabButton_Click);

只需将发送者转换到按钮,您将获得触发事件的按钮:

void tabButton_Click(object sender, EventArgs e)
{
Button buttonSender = (Button) sender;
buttonSender.Enabled=false;
}

您没有找到 "tab_1",因为它不是 tabButton_Click 范围内的有效名称。这就是为什么必须将发送者对象转换为 WindowsForms 按钮,然后更改其属性的原因。

关于c# - 使用 Windows 窗体中的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17464047/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com