-1

I've tried looking many places for an answer to an issue I'm having and so far I've found nothing.

What I currently have is a c# windows form with user controls inside it. Some user controls have other controls inside them. What happens when I change the text in a textbox, is its parent windows will no longer resize like they should when changing the window size. i.e. A horizontal scrollbar will appear even though horizontal scrollbars are disabled in that specific window. Its almost as if changing the text changes the parent window's styling.

In case this is too vague, I have a textbox inside a panel with a docking property set to fill. The panel has a padding of 10 in order to allow the textbox to have some white space for aesthetic purposes. This control resides within a parent control (we'll call it parent 1), which in turn resides within another control as well (we'll call it parent 2). So when I change the textbox's text (at all, even adding a space), will then make parent 2 have a horizontal scrollbar flicker and sometimes even remain when resizing the form window manually.

4

2 に答える 2

0

TextBoxを埋めるためにドッキングされているだけでなくUserControl、ユーザーコントロール自体とその親(およびその親)が正しくドッキングされているか、フォームに合わせてサイズが変更されるようにアンカーが設定されていることを確認する必要があります。

ユーザーが文字を入力するときに特別なコードを実行しますか?(KeyPressedイベントなど)。はいの場合は、イベントを一時的に無効にして、問題が発生するかどうかを確認する必要があります。

コードのサンプルを投稿すると、支援が容易になります。これがなければ、私が試したように、推測することしかできません...

于 2012-10-02T22:34:20.477 に答える
0

私の問題を発見しました!autoScrollBars とダブル バッファリングを使用すると、ウィンドウのサイズを変更するときに (少なくとも私の場合は) 表示されるべきではないときに、水平スクロールバーが表示されました。答えは簡単でした。autoScrollBars を忘れて、独自の垂直スクロール バーを実装してください。

私は実際に、皆さんが見られるようにここに投稿するコードを取得していましたが、それを見て、自動スクロールを忘れることにしました。

それがなぜなのか、私は実際に興味があります。私の友人は、.net には autoScroll に関するいくつかの問題があると聞きましたが、私はそれがこの程度になるとは思いませんでした。

于 2012-10-10T21:49:58.993 に答える