我注意到,通过编程在Tab控件中选择Tab,选择选项卡页selected.Is中包含的控件,就有可能改变这种行为。在选项卡页中有一个控件,当从按钮单击中选择其选项卡页时,该控件不希望被选中。我有一个简单的表单,它有一个选项卡控件和两个选项卡页。单击button1时,选项卡页2将被选中,但包含在该选项卡页中的数据视图也会被选中。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.GotFocus += DataGridView1_GotFocus;
}
private void DataGridView1_GotFocus(object sender, EventArgs e)
{
//this event is called from button1_click
}
private void button1_Click(object sender, EventArgs e)
{
tabControl1.SelectedTab = tabPage2;
}
}发布于 2016-03-25 07:16:42
下面是选择选项卡的代码
private void button1_Click(object sender, EventArgs e)
{
// we can select tab by tab name
tabControl1.SelectTab("tabPage2");
tabControl1.SelectedIndex = 1;
tabControl1.TabPages[0].Hide();
tabControl1.TabPages[1].Show();
}发布于 2016-03-25 06:38:16
默认情况下,当您选择一个选项卡(甚至当您启动一个表单)时,您的选项卡顺序中的第一个控件将自动聚焦。我想这就是这里正在发生的事情。
您可以通过简单地分散datagridView的焦点来解决这个问题。有多种方法可以做到这一点。首先,可以将焦点设置为希望被选中的控件,而不是dataGridView。这可以通过以下方式实现:
myControl.Focus = True;或者,如果希望选择非控件,则可以将活动控件设置为Null:
ActiveControl = NULL;注意:ActiveControl是一个包含当前活动控件的属性。
这段代码应该放在哪里。这完全取决于你。您可以在更改按钮单击事件中的选项卡时立即执行此操作。这是我想要的。
我相信也有其他的传说来达到同样的目的。希望这能有所帮助。
https://stackoverflow.com/questions/36215099
复制相似问题