メッセージボックスの場所を変更する必要があります。ページの中央に配置したくありません。
MessageBox.Show("Hello");
通常、標準のメッセージボックスの起動場所を変更することはできません。
あなたの質問の解決策:
できることは、新しいウィンドウを作成し、プロパティAllowsTransparencyをtrueに設定し、BackgroundをTransparentに設定することです。そのウィンドウに、TextBlockまたはラベルを配置し、[はい]/[いいえ]ボタンを追加することもできます。 Canvs.SetTop(Window、TopPosition)およびCanvas.SetLeft(Window、LeftPosition)を使用して、このウィンドウの場所を設定します。次に、メソッドShow()またはShowDialog()を使用してウィンドウを呼び出します。
MessageBoxフォームから継承する新しいフォームを作成する必要があります。これが、位置プロパティにアクセスする唯一の方法です。
場所を変更する方法はありますが、そのような小さなタスクには複雑すぎます。
本当にその場所を変更する必要がある場合は、それを表示し、GetForegroundWindow
を使用してウィンドウハンドルを取得してから、MoveWindow
を目的の場所に移動します。
しかし、私がすでに述べたように、これはあまりにも複雑です。
「OK」ボタンのラベルが付いた独自のフォームを作成するだけです。ボタンをデフォルトのウィンドウボタンとして設定し、Form1でMyWndName.ShowDialog();
を実行します。
私はすでにプロジェクトの他のいくつかのタスクにAutoItを使用しているので、メッセージボックスを移動するために別のスレッドを作成するだけです
using System.Threading;
using AutoIt;
//Namespace, class, function stuffs
//New thread BEFORE create message box - safety measure
Thread autoItThread = new Thread(delegate ()
{
AutoItX.WinWait("New Message box");
AutoItX.WinMove("New Message box", "This box will be moved", 400, 300);
});
autoItThread.Start();
MessageBox.Show("This box will be moved", "New Message box");
ご注意ください
400,300
は絶対です。 0,0
は左上隅になります。