C#から生成されたものに隣接して別のフォームを表示します -- c# フィールド と .net フィールド と winforms フィールド 関連 問題

Show another form adjacent to the one its spawned from C#












8
vote

問題

日本語

新しい形式をどのように出現することが可能であるでしょうか。 <コード> Form2 <コード> Form1 から、 Form2 Form1 に隣接していることを確認します。

ENTER ENTER IMENT Description

英語

How would it be possible to spawn a new form e.g. Form2 from Form1, but make sure Form2 is adjacent to Form1, for example:

enter image description here

</div
        
   
   

回答リスト

4
 
vote
vote
ベストアンサー
 

メインフォームの LocationChanged イベントを取り扱います。

シンプルなデモ:

<事前> <コード> public partial class Form1 : Form { Form2 f2; public Form1() { InitializeComponent(); this.LocationChanged += new EventHandler(Form1_LocationChanged); } private void button1_Click(object sender, EventArgs e) { f2 = new Form2(); f2.StartPosition = FormStartPosition.Manual; f2.Location = new Point(this.Right, this.Top); f2.Height = this.Height; f2.Show(); } void Form1_LocationChanged(object sender, EventArgs e) { if (f2 != null) f2.Location = new Point(this.Right, this.Top); } }
 

Try handling the LocationChanged event of the main form.

Simple demo:

public partial class Form1 : Form {   Form2 f2;    public Form1() {     InitializeComponent();     this.LocationChanged += new EventHandler(Form1_LocationChanged);   }    private void button1_Click(object sender, EventArgs e) {     f2 = new Form2();     f2.StartPosition = FormStartPosition.Manual;     f2.Location = new Point(this.Right, this.Top);     f2.Height = this.Height;     f2.Show();   }    void Form1_LocationChanged(object sender, EventArgs e) {     if (f2 != null)       f2.Location = new Point(this.Right, this.Top);   } } 
</div
 
 
6
 
vote

何かのようなもの:

<事前> <コード> // button click handler method Form2 child = new Form2(); child.Location = new Point(this.Location.X + this.Width, this.location.Y); child.Show();

現在のフォームオブジェクトの位置のX座標を取り、フォームの幅を追加して、新しいフォームのX座標を取得します。 Y座標は同じままです。

 

Something like:

// button click handler method  Form2 child = new Form2(); child.Location = new Point(this.Location.X + this.Width,                             this.location.Y); child.Show(); 

Take the X coordinate of the location of the current form object and add to it the width of the form, thus obtaining the X coordinate of the new form. The Y coordinate stays the same.

</div
 
 
   
   
3
 
vote
<事前> <コード> public partial class Form1 : Form { Form2 frm2; public Form1() { InitializeComponent(); frm2 = new Form2(this); frm2.Show(); } }

と:

<事前> <コード> public partial class Form2 : Form { Form1 frm1; public Form2(Form1 frm1) { InitializeComponent(); this.frm1 = frm1; frm1.Move += new EventHandler(Form1_Move); } void Form1_Move(object sender, EventArgs e) { this.Location = new Point(frm1.Location.X + frm1.Width, frm1.Location.Y); } }

編集:(コメントのため)

Form1 を作成する Form2 を追加:

<事前> <コード> Move += new EventHandler(Form2_Move);

<コード> Form2 のコンストラクタ。

と:

<事前> <コード> LocationChanged0

そのクラスに

 
public partial class Form1 : Form {     Form2 frm2;     public Form1()     {         InitializeComponent();         frm2 = new Form2(this);         frm2.Show();     } } 

And:

public partial class Form2 : Form {     Form1 frm1;     public Form2(Form1 frm1)     {         InitializeComponent();         this.frm1 = frm1;         frm1.Move += new EventHandler(Form1_Move);     }      void Form1_Move(object sender, EventArgs e)     {         this.Location = new Point(frm1.Location.X + frm1.Width, frm1.Location.Y);     } } 

EDIT: (Due to a comment)

To make Form1 follow Form2 as well, add:

Move += new EventHandler(Form2_Move); 

To Form2's constructor.

And:

void Form2_Move(object sender, EventArgs e) {     frm1.Location = new Point(Location.X - frm1.Width, Location.Y); } 

In its class.

</div
 
 
 
 
3
 
vote

多分これはあなたを助けるでしょう。 Button1はForm1

にあります <事前> <コード> LocationChanged1
 

Maybe this will help you. Button1 is on form1

private void button1_Click(object sender, EventArgs e)         {             Form2 form2 = new Form2();             form2.StartPosition = FormStartPosition.Manual;             form2.SetDesktopLocation(this.Location.X + this.Width, this.Location.Y);             form2.ShowDialog();         } 
</div
 
 

関連する質問

606  クロススレッド操作が無効:それが作成されたスレッド以外のスレッドからアクセスされたコントロール  ( Cross thread operation not valid control accessed from a thread other than the ) 
シナリオがあります。 (Windows Forms、C#、.NET) 何らかのユーザーコントロールをホストする主なフォームがあります。 ユーザーコントロールは、 UserControl_Load メソッドを直接呼び出すと、UIがロードメソッドの実行の間に無応...

38  C#WinFormsアプリケーションでフラッシュコンテンツを表示する  ( Displaying flash content in a c sharp winforms application ) 
c# winformsアプリケーションで Flash コンテンツを表示する最善の方法は何ですか?イメージとフラッシュコンテンツを表示できるようになるユーザーコントロール(現在の<コード> PictureBox と同様)を作成します。 ディスク上のファイルで...

12  WPFのTreeViewのレベルは?  ( The level of a treeview in wpf ) 
winforms アプリケーションでは、 treeview のレベルは 9988777662 wpf ?の対応するコマンドは何ですか? ...

0  C#ユーザーが終了すると機能を実行します  ( C sharp run function when user exits ) 
ユーザーがアプリケーションを存在するときにC#で関数を呼び出す方法はありますか? Visual C#2008 Express Editionを使用しています。 ありがとう。 ...

3  WinForms ListBoxでの画像サムネイル  ( Image thumbnail in a winforms listbox ) 
リストボックス内のサムネイルをWindowsフォームアプリケーションで表示しようとしています。私は読み、あらゆる種類の提案を見ていますが、私は最も単純なものを探しています。これが私がしようとしていることの詳細です。 画像のサムネイルとその隣のテキストを表示し...

1  Formsが開かれたときに、Visual Studio Designerの移動制御とグリッド列の追加  ( Visual studio designer moving controls and adding grid columns when form is open ) 
特定の形式のコントロールを開くことを試みる(右側および/または下部にアンカーを持つもの)シフトされ、私のグリッドはそれらのデータソースから自動的にすべての列を取り戻します(列)以前に取り外した。 InitializeComponentメソッドの後に「良い」デ...

2  C#の動的制御  ( Dynamic control in c sharp ) 
TextBoxesとCheckBoxを使用して4 x 3行列の種類を作成したいです。要素がCheckBoxまたはTextBoxのどちらがデータベース内の値によって異なります.Iは動的になりたいです。始める最善の方法は何ですか? <事前> <コード> _or...

54  WinForms ComboBoxデータバインディングGotcha  ( Winforms combobox data binding gotcha ) 
次のようなことをしているとします <事前> <コード> List<string> myitems = new List<string> { "Item 1", "Item 2", "Item 3" }; ComboBox box = ...

0  TabControlでSelectedIndexChangedイベントから例外がスローされたら、タブページをプログラムで変更することはできません。  ( Cannot programmatically change tab pages once exception is thrown from selectedi ) 
これはC#、WinFormの質問です。 TABControlコントロールを持ち、2つのナビゲーションボタンを使用してタブページを切り替えます。ボタンの[イベント]の[表示]タブページを変更するには、TabControl.SelectedIndex = Iを使...

66  WinFormsアプリで集中管理を見つけるのに好ましい方法は何ですか?  ( What is the preferred way to find focused control in winforms app ) 
現在、winformsでユーザー(キーボード)入力を受けているコントロールを見つけるのに好ましい/最も簡単な方法は何ですか? これまでのところ私は次のようになりました: <事前> <コード> public static Control FindFocusedC...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有