我有一個名爲SupplierName和ProductName的文本框,位於groupbox1
和gridview1
之間,看起來像intellisense。在不同容器中動態顯示其他控件旁邊的控件
例如,當我在SupplierName中輸入「s」時,gridview1
會從數據庫中獲取以「s」開頭的客戶名稱,並且它像智能感知一樣被定位在SupplierName文本框中當前單詞的底部。
它看起來罰款SupplierName文本,但文本框產品名稱是groupbox1
和我無法找到上groupbox1
gridview1
到附近出現產品名稱文本框。 它只出現在SupplierName文本框附近,即使我在ProductName文本框中輸入文本。
這裏是代碼,其中tb
是採取當前正在輸入的文本的文本框的名稱文本參數:
int i = tb.SelectionStart;
...
Point pt = tb.GetPositionFromCharIndex(i);
pt.Y += (int)Math.Ceiling(tb.Font.GetHeight());
pt.Y += 2;
using (Graphics g = Graphics.FromHwnd(tb.Handle))
{
SizeF size = g.MeasureString(tb.Text, tb.Font);
if (size.Width > tb.Width)
{
// float length = size.Width % txtintellisense.Width;
pt.X += tb.Width;
}
else
pt.X += (int)size.Width;
}
Point point = tb.Location;
pt.X += point.X;
pt.Y += point.Y;
this.dGVinvisible.Location = pt;
this.dGVinvisible.BringToFront();
@deva ..第一代碼會更好,如果它爲你工作。如果您選擇第二個選項,則應該在每個具有不同容器的控件上的每個GetFocus事件中設置DGV容器.. – matzone
@deva ..它是父級屬性.. – matzone
@deva ..如果此問題可以隨意投票幫助你.. X) – matzone