1.假设我的Form上有一个工具栏,这个工具栏按钮比较大。Form显示的时候,我随便打开另外一个窗口,让他挡住工具栏按钮的一部分。然后我现在把鼠标移到Form的工具栏按钮上面(这个时候Form是后台的),按钮会突出显示,但是当我点击的时候,他不会执行click事件,而是先把Form窗口放到前台显示,这个时候再点击才可以。我现在就是想点击了就执行操作,不管是否为前台窗口,应该怎么做?2.我的Tabpage设置有图片和文字。当我在程序中设定它的Txt和ImageIndex的时候,如果Txt的长度比原来显示的长,那么这个Image和Txt显示的就不好。如果随便再加一个Tabpage到TabControl上,刚才那个Image和Txt又能显示好了,请问是怎么回事?

解决方案 »

  1.   

    第一个问题自己解决了,在Form的MouseEnter里面写上this.Focus()。唉。。没人理我
      

  2.   

    如果Txt的长度比原来显示的长 什么意思?
      

  3.   

    刚才我又测试了第二个问题,这样的:
    一个Form上面一个Tabcontrol+一个TabPage,初始化的时候TabPage的Text="123",TabControl的SizeMode设为Fixed,ItemSize的宽度设为100。
    然后在Form上加一个Button。它的Click事件就是Tabcontrol.Tabpages[0].Text="987456321235878952",反正比"123"要长。好了,开始由于"123"比较短,所以"1”显示的位置大概在Tabpage标签的中间(也就是说左右都有空白)。当把Text改变之后,这个"9"的开头位置就在"1"的地方。由于第二次显示的比较长,标签的右边会填满,但是左边就空出了一部分了。如果把窗口最小化,再最大化,你就会发现"987456321235878952"的位置自动向左移了,也就是显示的合适了。但是用this.Invalidate(),它是不会移的。不会是vs的bug吧?
      

  4.   

    你都把TabControl的SizeMode设为Fixed了,怪不得我这边normal的没问题
      

  5.   

    第二个问题也解决了,不要设成SizeMode,而设成Normal。在创建page的时候,把page的width=100,然后再Tabcontrol.AddPages(page).
    晚上结贴。