Вопросы с тегами [winforms]

1

голосов
2

ответ
2.7k

Просмотры

Как сделать вертикальный разделитель в Windows Forms Application (C #)

Для проекта, я должен сделать Forms приложения Windows, что делает Mandelbrotfigure. Теперь я хочу добавить вертикальный разделитель между UI на левой и на рисунке справа (см рисунок). Любая идея о том, как сделать это?
Boris Winter
-1

голосов
2

ответ
22

Просмотры

как установить строку состояния от статического [дубликата]

Этот вопрос уже есть ответ здесь: Асинхронный Progress Bar Update 3 ответов У меня есть форма (называется Form1) и я создал полосу состояния (так называемый toolStripProgressBar1), с этикеткой и прогрессом баром. У меня есть функция, которая вызывается при нажатии на кнопку и получает некоторые данные и обрабатывает его, который хорошо работает. Я хочу, чтобы предоставить пользователю некоторую информацию относительно его прогресса, поэтому я хочу, чтобы установить метку и прогресс бар, но я не могу получить его, чтобы установить частный статический асинхронной Task GetSurvey (строка surid) {Form1.toolStripProgressBar1.Value = 10;
StuartAM
1

голосов
4

ответ
110

Просмотры

Как отправить «{}» в SendKeys

Я пытаюсь отправить "{" и "}" с помощью SendKeys.Send () я уже пытался использовать string.replace { "{", "{{}"} = TXT txt.Replace ( "{", «{{ } "); TXT = txt.Replace ( "}", "{}}"); SendKeys.Send (TXT); Я ожидал, что это отправить «{» и «}», но программа выдает ошибку System.FormatException
PikaFan123
1

голосов
1

ответ
6.3k

Просмотры

save word document that's been created dynamically using SaveFileDialog?

У меня есть код, который записывает текст в документ Word (не-XML) и сохраняет его в файл. Теперь я пытаюсь изменить его так, что создается документ, и пользователь затем будет предложено сохранить документ. Это код для создания документа слова: объект промаха = System.Reflection.Missing.Value; Видимый объект = TRUE; Объект start1 = 0; Объект end1 = 0; Microsoft.Office.Interop.Word.Application WordApp = новый Microsoft.Office.Interop.Word.Application (); Документ aDocument = WordApp.Documents.Add (ссылка промах, исй промах, исй промах, исй промах); Диапазон RNG = aDocument.Range (исх start1, исх промах); попробуйте {rng.Font.Name = "Грузия"; rng.InsertAfter ( "Заголовок отчета!"); объект имя_файла = @ "C: \ Users \ test.doc"; aDocument.SaveAs (иое имя файл, иая барышня, исй промах, исй промах, исй промах, исй промах, исй промах, исй промах, исй промах, исй промах, исй промах, исй промах, исй промах, исй промах, исй промах, исй промах); объект SaveChanges = Microsoft.Office.Interop.Word.WdSaveOptions.wdPromptToSaveChanges; объект originalFormat = Microsoft.Office.Interop.Word.WdOriginalFormat.wdWordDocument; объект routeDocument = TRUE; ((_Document) aDocument) .close (SaveChanges, originalFormat, routeDocument); // закрыть документ процесса (winword.exe) //WordApp.Visible = TRUE; } Задвижка (Исключение ех) {MessageBox.Show (ex.Message); } Это работает, как ожидалось; он создает документ Word, и открывает его для пользователя. Я читал эту ссылку от Microsoft о сохранении файлов с помощью SaveFileDialog, но я не совсем уверен, как применить его к моей ситуации. Поскольку SaveFileDialog обеспечивает объект потока для записи в, я должен прочитать из файла Word, и записать его в поток? Если это так, я не знаю, как написать код, но, похоже, обходным путем. Есть ли способ, чтобы передать созданный документ Word, непосредственно к SaveFileDialog?
1

голосов
1

ответ
2.2k

Просмотры

Как изменить размер управления Tab программно?

Я хочу программно изменить размер вкладки управления на моем WinForm. tabCtrl.Size.Width = Convert.ToInt32 (numericUpDown1.Value); tabCtrl.Size.Height = Convert.ToInt32 (numericUpDown2.Value); Но я получаю сообщение об ошибке: Не удается изменить возвращаемое значение «System.Windows.Forms.Control.Size», потому что это не переменная Любая идея, как я могу изменить размер управления Tab программно?
Michael
1

голосов
2

ответ
158

Просмотры

C # Работа с двумя кнопками в DataGridView

Я в настоящее время разрабатывает проект # C, который отображает приказы пользователей. Теперь, в том, что я новичок в этом я прошу вас помочь мне о том, как я мог бы получить доступ к две кнопки внутри DataGridView и дать им отдельные функции. Где у меня в коде мудрый: частный ничтожной dataGridView1_CellContentClick (объект отправитель, DataGridViewCellEventArgs е) {если (vHisOrd_BtnDelivered.Selected) {} ​​еще если (vOrdHis_Btn.Selected) {}} DataGridView Изображение:
user7943
1

голосов
1

ответ
59

Просмотры

Родитель Dialog Закрывает Когда Child Dialog Закрыто

У меня есть форма, что я открываю с помощью ParentForm.ShowDialog (). Внутри этой формы я называю: с помощью (форма вара = новый ChildForm ()) {результат переменного = Form.ShowDialog (); если (результат == DialogResult.OK) {this.Cancelled = ложь; }} Я получаю странное поведение, когда диалог ребенок замкнут, родитель (вызов) форма также закрывается. Почему это происходит и как это остановить? У меня есть текущее решение, которое предотвращает закрытие родительской формы, используя событие ParentForm_FormClosing и логическое, но он чувствует, как чрезмерно сложное решение
James Wadsworth
1

голосов
2

ответ
189

Просмотры

How to get Selected Listbox Items using devexpress in winforms app?

Я пытаюсь получить выбранный текст элемента. Я использовал этот код ниже MessageBox.Show (listBoxColumnHeaders.SelectedItems); Выход Devexpress.XtraEditors.BaseListboxControl + SelectedItemCollection Но мой текст Страна Update Я добавить элементы ListBox из другого класса. Этот класс называется FilterColumnHeader используя код ниже FilterControl к = Application.OpenForms.OfType () SingleOrDefault (). Список заголовки = новый список (); в то время как (rd.Read ()) {headers.Add (новый FilterColumnHeader {typeOfHeader = й [ "тип"] ToString (), columnHeadersName = й [ "AsHeading"] ToString ()}..); } Fc.listBoxColumnHeaders.DisplayMember = "columnHeadersName"; fc.listBoxColumnHeaders.ValueMember = "typeOfHeader"; fc.listBoxColumnHeaders.DataSource = заголовки; Теперь, когда я пытаюсь напечатать, используя этот код, приведенный ниже, MessageBox.Show ( "" + listBoxColumnHeaders.SelectedItems [0] .ToString ()); Это показывает в окне сообщения, как показано ниже `ProjectName.FilterColumnHeader`
Liam neesan
1

голосов
1

ответ
266

Просмотры

Кнопка Пререквизиты отключена - установщик MSI

Я создал .msi инсталлятор. Я хочу, чтобы в дальнейшем добавить предпосылки (например, .Net), но когда я иду к свойствам Project Setup, кнопка Пререквизиты отключена. Как включить? Другие подробности: Я использую VS 2015, SQL Server 2008 R2, .Net 4.5.2, C #, WinForms, Win 10 Pro x64 Мой проект установки находится в том же растворе, в качестве основного проекта
Prasad Kamath
1

голосов
0

ответ
68

Просмотры

Как программно нажать клавишу на количество времени?

Так что я знаю, что вы можете стимулировать нажатие на C #, но мой вопрос, например, я вызвал событие, и я хочу, чтобы конкретный ключ, который будет нажат. Теперь это можно сделать с помощью этого: SendKeys.SendWait (SomeChar); Но что, если я хочу, чтобы нажать клавишу в течение определенного периода времени? Это можно сделать с помощью этого (внутри блока события / триггер кода): в то время (правда) {SendKeys.SendWait (SomeChar); } Хотя это было бы просто вызвать ключ, чтобы быть перевес. Теперь мой вопрос, как я на самом деле сделать это так, клавиша нажата все время (держать клавишу нажатой), а не то, что было бы во много раз прессуют в момент времени, вместо этого?
Emanuel L
1

голосов
1

ответ
71

Просмотры

Как отобразить перечисление с повторяющимися значениями в .NET PropertyGrid?

У меня есть перечисление, который содержит повторяющиеся значения. Например: общественные перечисления DataVals: байты {C1_Route1to2 = 1, C4_Route3to5 = 1, C6_Route1to2 = 2, C7_Route3to5 = 2} Значения C # только внутренние значения в моем приложении. В зависимости от того, какой маршрут выбран пользователем, маршрут является другое свойство в классе, 1 может означать использование С1 или С4. Проблема заключается в том, я использую PropertyGrid в моем Winform и это свойство отображает повторяющиеся значения, имеющие такое же имя. Так C1_Route1to2 показывает дважды вместо как C1_Route1to2 и C4_Route3to5. Как сказать PropertyGrid для отображения каждого уникального имени, а не дублировать значение?
pavuxun
1

голосов
0

ответ
252

Просмотры

C # Как масштабировать прямоугольники с PictureBox?

У меня есть PictureBox, и я рисовать прямоугольники на нем. Я использую SizeMode.Zoom свойство масштабирования мой PictureBox Это мой код: ширина поплавка = (INT) (Math.abs (левый - правый) * отношение); // Resizing хорошо работает высота поплавка = (INT) (Math.abs (верхний - нижний) * отношение); плавать х = ш / 2; // ш, ч - PictureBox.Width, PictureBox.Height всплывают Y = H / 2; // Прямоугольник всегда в центре Я хочу прямоугольники придерживаться образа. Как изменить положение этих прямоугольников, когда мой PictureBox изменения размеров? Как узнать положение прямоугольника относительно центра окна? без слипания
user9046477
1

голосов
1

ответ
135

Просмотры

Windows app single sign-on when server has Anonymous and Windows Authentication is enabled?

Наш клиент имеет веб-интерфейс API, который настроен как для анонимных и Аутентификация Windows. Они отказываются делать какие-либо изменения в этой конфигурации. Наше приложение # WinForms C пытается связаться с этим API, но он должен использовать проверку подлинности Windows для текущего авторизованного пользователя. В WebClient и HTTPClient классы по умолчанию Анонимная проверка подлинности и никогда не пытается отправить учетные данные Windows. Что мне нужно сделать, чтобы клиент Desktop разрешить единый вход в систему с этим API? В песочнице, я построил этот контроллер WebAPI2: класс AuthenticateController общественности: ApiController {общественная строка Get () {вар идентичности = User.Identity; Имя вар = string.IsNullOrEmpty (identity.Name)? "Anonymous": identity.Name; вернуться identity.IsAuthenticated? $»
Hand-E-Food
1

голосов
2

ответ
69

Просмотры

Предотвратить нажатие кнопки от активации формы

У меня есть форма А, частично перекрывается другой формы Б, как отдельные приложения / процессы. При нажатии на конкретную кнопку на форме А не должно вызывать форму А, чтобы получить фокус / активировать (удержание формы B на переднем плане), в то время как мыши в любом другом месте на форме А должно привести его к передней / активировать его, как можно было бы ожидать. Любые намеки о том, как достичь этого оценены.
Lieven De Foor
1

голосов
1

ответ
339

Просмотры

C # Winforms MVP-пассивный вид, где для обработки модели?

Я новичок типа MVP-PV шаблона и некоторые вопросы о том, как обрабатывать модели. (Я использую простые операторы CRUD в приложении, а не EF) Есть ли модель содержит CRUD, который используется для извлечения данных или просто содержат свойство модели. Где вы экземпляр модели? В представлении прошло с Presenter? В верхней части Presenter? В каждом методе? Вот простой пример того, что я делаю с MVP. UserControl добавляется следующим образом: ElementView uControl = новый ElementView () uControl.Location = новая точка (0, 0); uControl.Dock = DockStyle.Fill; rPanel.Controls.Add (uControl); Интерфейс: пространство имен MPVExample.View {общедоступный интерфейс IElementView {Int IElementPKey {получить; задавать; } Строка INumber {получить; задавать; } Строка IDescription {получить; задавать; } Событие EventHandler OnEditElement; }} The View: пространство имен MPVExample.View {общественный частичный класс ElementView: UserControl, IElementView {частное ElementPresenter предъявитель = NULL; общественное мероприятие EventHandler OnEditElement; общественного ИНТ IElementPKey {получить {вернуться TxtElementKey.Text; } Множество {TxtElementKey.Text = значение; }} Публичная строка INumber {получить {вернуться TxtNumber.Text; } Множество {TxtNumber.Text = значение; }} Строка IDescription общественности {получить {вернуться TxtDescription.Text; } Множество {TxtDescription.Text = значение; }} Общественного ElementView () {ведущий = новый ElementPresenter (это); InitializeComponent (); } Частный аннулируются отправитель BtnEdit_Click (объект, EventArgs е) {OnEditElement .Invoke (это, EventArgs.Empty); }}} В Presenter: Пространство имен MPVExample.Presenter {общественный класс ElementPresenter {частное IElementViewView только для чтения; // ElementModel Модель = новый ElementModel (); // Инстанцировать Здесь? общественного ElementPresenter (IElementView вид) {попробуйте {если (вид! = NULL) {View = вид; Initialize (); } Еще {певд ArgumentNullException ( "IElementView"); }} Поймать (Exception ех) {// Log Error}} частные аннулируются Initialize () {попробуйте {View.OnEditElement + = Edit_Element; } Поймать (Exception ех) {// Log Error}} частный недействительным Edit_Element (объект отправителя, EventArgs е) {попробуйте {ElementModel модель = новый ElementModel (); // Инстанцировать Здесь? Model.ElementPKey = View.IElementPKey; Model.Number = Convert.ToByte (View.INumber); Model.Description = View.IDescription; Model.Edit (); } Поймать (Exception ех) {// Log Error}}}} Модель: пространство имен MPVExample.Models {общественного класса ElementModel {общественного ИНТ ElementPKey {получить; задавать; } Число общественных байт {получить; задавать; } Публичная строка Описание {получить; задавать; } Общественного недействительными Edit () // принадлежит ли это здесь? {// SQL для редактирования записи} общественного недействительными Save () // принадлежит ли это здесь? {// SQL, чтобы сохранить запись} общественного недействительными Get () // Принадлежит ли это здесь? {// SQL, чтобы получить запись} общественного недействительными Delete () // принадлежит ли это здесь? {// SQL, чтобы удалить запись}}} Модели {общественного класса ElementModel {общественного ИНТ ElementPKey {получить; задавать; } Число общественных байт {получить; задавать; } Публичная строка Описание {получить; задавать; } Общественного недействительными Edit () // принадлежит ли это здесь? {// SQL для редактирования записи} общественного недействительными Save () // принадлежит ли это здесь? {// SQL, чтобы сохранить запись} общественного недействительными Get () // Принадлежит ли это здесь? {// SQL, чтобы получить запись} общественного недействительными Delete () // принадлежит ли это здесь? {// SQL, чтобы удалить запись}}} Модели {общественного класса ElementModel {общественного ИНТ ElementPKey {получить; задавать; } Число общественных байт {получить; задавать; } Публичная строка Описание {получить; задавать; } Общественного недействительными Edit () // принадлежит ли это здесь? {// SQL для редактирования записи} общественного недействительными Save () // принадлежит ли это здесь? {// SQL, чтобы сохранить запись} общественного недействительными Get () // Принадлежит ли это здесь? {// SQL, чтобы получить запись} общественного недействительными Delete () // принадлежит ли это здесь? {// SQL, чтобы удалить запись}}} } Общественного недействительными Edit () // принадлежит ли это здесь? {// SQL для редактирования записи} общественного недействительными Save () // принадлежит ли это здесь? {// SQL, чтобы сохранить запись} общественного недействительными Get () // Принадлежит ли это здесь? {// SQL, чтобы получить запись} общественного недействительными Delete () // принадлежит ли это здесь? {// SQL, чтобы удалить запись}}} } Общественного недействительными Edit () // принадлежит ли это здесь? {// SQL для редактирования записи} общественного недействительными Save () // принадлежит ли это здесь? {// SQL, чтобы сохранить запись} общественного недействительными Get () // Принадлежит ли это здесь? {// SQL, чтобы получить запись} общественного недействительными Delete () // принадлежит ли это здесь? {// SQL, чтобы удалить запись}}}
dbay
1

голосов
1

ответ
57

Просмотры

Как сделать клоны панели с органами управления в нем программно?

Хорошо, я схожу с ума в этой точке. Но, как видно из названия, я хочу, чтобы сделать копии панели (п) количество раз с помощью кода, но я не могу понять это. Сама панель имеет метку, TextBox и Button (он не обязательно должен быть в панели). Любая помощь приветствуется! Благодарю.
Laurent
1

голосов
2

ответ
260

Просмотры

Сломать код формы за WinForms

В моем последнем WinForms проекта, код позади моей главной форме начал становиться слишком большим и трудно читать. В других постах, которые я прочитал, я видел предложения, которые говорят, чтобы создать еще один класс, который является частичным классом вашей основной формы, однако, что на самом деле мне ошибки является то, что новый класс, который вы создаете автоматически генерирует другое пустое окно проектирования. Я действительно искал способ, чтобы разделить мой код позади на несколько частичных классы, но только с одной главным окном дизайна. Например, в проекте ниже, мое главное окно Form1.cs. Когда я первый создать новый файл класса (Form1Part2.cs), файл отображается как переменный ток # класса, который не содержит свое собственное окно формы дизайнера. (Что в значительной степени то, что я хочу, за исключением того, что должно быть подключено к Form1 классу, так что я могу получить доступ к его управлению и свойство) Перед тем, как классу частичного класса: Тем не менее, когда я делаю новый класс частичного класса Form1, файл становится формой, содержащей дизайн окна своего собственным. После того, класс частичного класса:
cj32
1

голосов
0

ответ
219

Просмотры

Как обращаться с # Элемент не доступен исключение в AutomationElement

Процесс currentProcess = Process.GetProcessById (element.Current.ProcessId); Здесь процесс представляет собой процесс окна и element.Current.ProcessId это процесс элемента автоматизации Id (AutomationElement). Он генерирует ошибку запуска application.How обрабатывать эту ошибку. Ошибка Im получает следующее. Исключение типа «System.Windows.Automation.ElementNotAvailableException» произошло в UIAutomationClient.dll и не было обработано перед управляемым / родной границей Дополнительной информации: Целевой элемент соответствует UI, который больше не доступно (например, родительское окно была закрыта).
vijesh
1

голосов
1

ответ
86

Просмотры

c# custom listbox item without word wrap using horizontal scroll

Так что я сделал пользовательскую ListBox в C # Windows Forms. Но это оборачивает текст он держит вместо того чтобы показывать горизонтальную полосу прокрутки, которая является то, что я хочу. Код ниже для ListBox: класс MyList общественности: ListBox {общественного MyList () {base.ItemHeight = 20; base.DrawMode = DrawMode.OwnerDrawFixed; HorizontalScrollbar = истина; } Защищен переопределение недействительный OnDrawItem (DrawItemEventArgs е) {e.DrawBackground (); если (e.State == DrawItemState.Focus) e.DrawFocusRectangle (); INT индекс = e.Index; если (индекс <0 || Индекс> = Items.Count) возвращение; Пункт вар = Пункты [индекс]; текстовая строка = (пункт == NULL)? "(Нуль)": item.ToString (); e.DrawBackground (); Графика г = e.Graphics; g.FillRectangle (новый SolidBrush (цвет. Прозрачный), e.Bounds); используя (вар кисти = новый SolidBrush (e.ForeColor)) {e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; e.Graphics.DrawString (текст, e.Font, кисть, e.Bounds); }}} Я довольно уверен, что это что-то делать с e.Bounds, но я не уверен, как установить «бесконечное» значение и для того, чтобы скроллинг. EDIT: В конструкторе, у меня есть HorizontalScrollbar = верно, но она все еще не показывает. Опять же, я думаю, что нужно изменить e.Bounds Спасибо всем. }}} Я довольно уверен, что это что-то делать с e.Bounds, но я не уверен, как установить «бесконечное» значение и для того, чтобы скроллинг. EDIT: В конструкторе, у меня есть HorizontalScrollbar = верно, но она все еще не показывает. Опять же, я думаю, что нужно изменить e.Bounds Спасибо всем. }}} Я довольно уверен, что это что-то делать с e.Bounds, но я не уверен, как установить «бесконечное» значение и для того, чтобы скроллинг. EDIT: В конструкторе, у меня есть HorizontalScrollbar = верно, но она все еще не показывает. Опять же, я думаю, что нужно изменить e.Bounds Спасибо всем.
Seth
1

голосов
1

ответ
207

Просмотры

'Не удается найти тип System.Resources.ResourceSet в модуле CommonLanguageRuntimeLibrary' в Windows, Visual Studio Local Computer Simulation

Я занимаюсь разработкой приложения с помощью Visual Studio для Windows. Я новичок в Visual Studio и C #, так что я не знаю много о том, что можно было бы назвать основы. При разработке с использованием внешней DLL я попытался реализовать MessageBox из Windows.Forms и когда я запускал программу появилась эта ошибка в списке ошибок, не может найти тип System.Resources.ResourceSet в модуле CommonLanguageRuntimeLibrary И это появилось в выходах C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Пользователи \ MSBuild \ Microsoft \ WindowsXaml \ v15.0 \ 8.2 \ Microsoft.Windows.UI.Xaml.Common.targets (354,5): Xaml Внутренняя WMC9999 ошибка Ошибка: не удается найти тип System.Resources.ResourceSet в модуле CommonLanguageRuntimeLibrary. Я пытался искать подобные проблемы, но я не мог понять ответы на все. Как я могу решить такую ​​ошибку? Спасибо всей помощи, которая может быть предоставлена.
1

голосов
0

ответ
27

Просмотры

Endless loop when restarting program with different parameters using Process.Start

I rewrote a WinForms program to also be accessable and runnable via command line. On my Win10 machine everything works fine. Double clicking the executable runs the windowed version and calling it from the command line runs the command line version. Moreover I can explicitly set an option to ensure window or command line mode independent on how the executable was called. The project is set as console application. To start the GUI version I close the console application and restart it without a console window. The following code is the point where I do this. Private Shared Function GetConsoleWindow() As IntPtr End Function ''' ''' Init as GUI application by restarting. ''' This might be a little hacky, but there is no other way since otherwise command line input is not working properly. ''' (I tried a lot variatons of attaching to the current cmd, etc.) ''' Private Sub InitUI() Dim consoleHandle As IntPtr = GetConsoleWindow() If _configuration.IsGUIApplication And consoleHandle IntPtr.Zero Then '' Restart without console, if it's a GUI application Dim binaryPath As String = Assembly.GetEntryAssembly().Location Dim processInfo As ProcessStartInfo = New ProcessStartInfo(binaryPath) With { .CreateNoWindow = True, .UseShellExecute = False, .Arguments = Environment.CommandLine, .WorkingDirectory = Path.GetDirectoryName(binaryPath) } Process.Start(processInfo) '' End current console process Environment.Exit(0) End If End Sub The problem, that I now have is that this doesn't work on Windows Server 2008. If I start the application by double clicking nothing seems to happen. Looking into the TaskManager the program seems to call itself again and again, since the execution call is something like Program.exe Program.exe, Program.exe Program.exe ... I assume that the consoleHandle is never IntPtr.Zeroand therefore it's restarting and restarting and restarting. I cannot debug on the Windows Server 2008, but I might add log messages to the program in doubt. I tried some googling, but with no success right know. EDIT My next step is to check whether the issue still happens, if avoid closing the current console application. In that case the window application should open and the console should run as background process. => I tried that now and it works. Nevertheless I would like to close the console application in the background such that only the window application is visible. EDIT 2 Just added some log messages and my assumption is true: The consoleHandle gets a new value on every restart and is never IntPtr.Zero Does anyone have an idea? SOLUTION I did not find the reason why Windows Server 2008 handles the issue differently than Win10. They way I solved it was to hide the console window instead of restarting the instance. I'm okay with that solution, but it means that I can't start the application from within a console without having the necessity to keep the console window open. Private Shared Function GetConsoleWindow() As IntPtr End Function Private Shared Function ShowWindow(ByVal hWnd As IntPtr, ByVal nCmdShow As Integer) As Boolean End Function Private Const SW_HIDE As Integer = 0 ''' ''' Returns whether the program was called from a console or not. ''' ''' Private Function IsCalledFromConsole() As Boolean Dim left = Console.CursorLeft Dim top = Console.CursorTop Return Not (left = 0 AndAlso top = 0) End Function ''' ''' Init as GUI application by hiding the console window. ''' This might be a little hacky, but there is no other way since otherwise command line input is not working properly. ''' (I tried a lot variatons of attaching to the current cmd, etc.!) ''' Private Sub InitUI() Dim consoleHandle As IntPtr = GetConsoleWindow() If _configuration.IsGUIApplication And consoleHandle IntPtr.Zero And Not IsCalledFromConsole() Then ShowWindow(consoleHandle, SW_HIDE) End If End Sub
Paul
1

голосов
1

ответ
53

Просмотры

Привязка Textbox, который содержится в Groupbox

У меня есть приложение Winforms с Groupbox, который, в свою очередь, содержит текстовое поле. Я считаю, что текстовое поле не будет связываться, когда заключенный в Groupbox, даже если он связывается (правильно), когда не содержится в Groupbox. Это тот случай, экспрессируется ли связывание в окне свойств или в коде. Кто-нибудь еще испытал это поведение или есть объяснение для этого? Обратите внимание, что ли текстовое поле включено или нет не имеет никакого значения. Из файла для Windows Designer.vb: Me.HearingInfoGroupBox.Controls.Add (Me.HearingTypeTextBox) {...} Me.HearingInfoGroupBox.Font = Новый System.Drawing.Font ( "Microsoft Sans Serif", 8,25 !, System.Drawing .FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType (0, Byte)) Me.HearingInfoGroupBox.Location = Новый System.Drawing.Point (17, 109) Me.HearingInfoGroupBox.Name = "
markysdad
1

голосов
0

ответ
45

Просмотры

C # - Формы скроллинг RichTextBox в прошлом неполной последней строки

У меня есть приложение, которое периодически отображает сообщение об ожидающем ... в начале новой строки в RichTextBox, а затем после некоторой произвольной задержки добавляет урон после трех точек, так что конечный результат будет выглядеть как ожидание ... Готово проблема заключается в том, что прокрутка не происходит до тех пор, после того, как я добавил Done с последующим переводом строки, так что я не получаю, чтобы увидеть только Waiting ... часть, если я вручную не использовать вертикальную полосу прокрутки. Как бы я вызываю свитка произойти, прежде чем я добавить Done, но все же оставить каретку в конце ...? Мой текущий код ниже. Я называю MyFunction первым, чтобы отобразить ожидания ... сообщение, а затем позже, чтобы завершить линию с Done части. Моя_функция недействительными (строка newText) {myRichTextBox.SelectionStart = myRichTextBox.TextLength + 1; myRichTextBox.SelectedText = newText; myRichTextBox.ScrollToCaret (); если (newText == «Ожидание ...») {// Прокрутка вниз так ожидающем ... сообщение виден, но // оставить каретку в конце Waiting ... так Done будет // находиться на одной и той же линии. }}
BenevolentDeity
1

голосов
3

ответ
56

Просмотры

C # показать MessageBox на основе COMBOBOX SelectedText

Как я показываю MessageBox на основе различных SelectedText в Combobox? В настоящее время она просто возвращает значение NULL при запуске. Мне нужно, чтобы показать конкретные MessageBox для каждого COMBOBOX текста, как только я могу это сделать, то в зависимости от SelectedText различных соединений SQL будет использоваться и запросы запуска. Я включил мой код ниже. После некоторых исследований, кажется, что контроль SelectedText всегда будет возвращать нулевое значение, поскольку оно теряет фокус. Как это обойти? частная пустота button2_Click (объект отправителя, EventArgs е) {если (comboSelectServer.SelectedText == "SERV1") {MessageBox.Show ( "SERV1"); } Иначе, если (comboSelectServer.SelectedText == "SERV2") {MessageBox.Show ( "SERV2"); } Еще если (comboSelectServer.SelectedText == "
WHoward
1

голосов
1

ответ
35

Просмотры

Dynamically loaded user controls disappear after button press c# win forms

Я пытаюсь динамически загружать экземпляры пользовательских элементов управления на мою основную форму, и она работает по большей части, когда программа загружается, но не работает после соответствующей кнопки, чтобы загрузить пользовательский элемент управления нажимаются дважды. Я использую следующий код для создания экземпляра из пользовательских элементов управления общественного класса patientInfo парциального: UserControl {публичного статического patientInfo _instance; общественности статической patientInfo Instance {получить {если (_instance == NULL) _instance = новый patientInfo (); вернуться _instance; }}} И этот код для загрузки экземпляра на MainForm частной ничтожной pInfo_Click (объект отправителя, EventArgs е) {// Patient Info Еогеасп (Control Ctrl в panel3.Controls) {ctrl.Dispose (); } если (! panel3.Controls. Содержит (patientInfo.Instance)) {panel3.Controls.Add (patientInfo.Instance); patientInfo.Instance.Dock = DockStyle.Fill; patientInfo.Instance.BringToFront (); } Еще {patientInfo.Instance.BringToFront (); }} Если я нажимаю эту кнопку один раз пользовательский элемент управления будет загружаться так, как это предполагается, но я нажимаю снова пользовательский элемент управления исчезнет. Я использую Dispose, потому что я хочу, чтобы загрузить и выгрузить несколько пользовательских элементов управления на различных кнопок мыши. Пожалуйста, сообщите спасибо. }} Если я нажимаю эту кнопку один раз пользовательский элемент управления будет загружаться так, как это предполагается, но я нажимаю снова пользовательский элемент управления исчезнет. Я использую Dispose, потому что я хочу, чтобы загрузить и выгрузить несколько пользовательских элементов управления на различных кнопок мыши. Пожалуйста, сообщите спасибо. }} Если я нажимаю эту кнопку один раз пользовательский элемент управления будет загружаться так, как это предполагается, но я нажимаю снова пользовательский элемент управления исчезнет. Я использую Dispose, потому что я хочу, чтобы загрузить и выгрузить несколько пользовательских элементов управления на различных кнопок мыши. Пожалуйста, сообщите спасибо.
Hamza Khan
1

голосов
1

ответ
47

Просмотры

Зависание WinForm во время работы 3 процессов / сбоев резьбы

I am new to threads in windows form. i am developing an one form application which shows message sending option along with live video stream in web browser and a live pulse plot using charts. I can successfully run these processes separately in other form but now i want to embed all in one form but as soon as app runs it hangs only showing video feed and cursor cant move in form. I need some one to guide me in threading. Thankyou This is my desired form and code. Please help. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; using System.Windows.Forms; using System.Windows.Forms.DataVisualization.Charting; using System.Diagnostics; namespace ClientApp { public partial class Form1 : Form { private string myMessage = ""; private TcpClient client = new TcpClient(); private IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse("server ip"), port1); Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); public Form1() { InitializeComponent(); client.Connect(serverEndPoint); socket.Connect("server ip", port2); //thread for running video stream Thread t1 = new Thread(threadURL); t1.Start(); } void threadURL() { string URL = "server ip"; webBrowser2.Navigate(URL); } // now the chat part(send message to Rpi) private void RtbClientKeyDown(object sender, KeyEventArgs e) { if (e.KeyData != Keys.Enter || e.KeyData != Keys.Return) { myMessage += (char)e.KeyValue; } else { SendMessage(myMessage); myMessage = ""; } } private void SendMessage(string msg) { NetworkStream clientStream = client.GetStream(); ASCIIEncoding encoder = new ASCIIEncoding(); byte[] buffer = encoder.GetBytes(msg); clientStream.Write(buffer, 0, buffer.Length); clientStream.Flush(); } //realtime pulse plot part received from socket System.Windows.Forms.Timer chartTimer = new System.Windows.Forms.Timer(); private void InitChart() { DateTime time = DateTime.Now; chartTimer.Interval = 1000; chartTimer.Tick += chartTimer_Tick; chart1.DoubleClick += chartDemo_DoubleClick; Series series = chart1.Series[0]; chartTimer.Start(); } //socket receiving pulse values from Rpi int ReceiveText() { byte[] buffer = new byte[1024]; int iRx = socket.Receive(buffer); char[] chars = new char[iRx]; System.Text.Decoder d = System.Text.Encoding.UTF8.GetDecoder(); int charLen = d.GetChars(buffer, 0, iRx, chars, 0); string recv = new string(chars); int final = Convert.ToInt16(recv); return final; } void chartDemo_DoubleClick(object sender, EventArgs e) { chart1.ChartAreas[0].AxisX.ScaleView.Size = 5; chart1.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = true; chart1.ChartAreas[0].AxisX.ScrollBar.Enabled = true; } private void LivePulseplot() { Series series = chart1.Series[0]; chartTimer.Start(); series.Points.AddXY(DateTime.Now.ToString("hh:mm:ss"), ReceiveText()); chart1.ChartAreas[0].AxisX.ScaleView.Position = series.Points.Count - 5; } void chartTimer_Tick(object sender, EventArgs e) { Thread tP = new Thread(LivePulseplot); tP.Start(); } } }
Abigail
1

голосов
1

ответ
50

Просмотры

Где объявить ConfigurationManger внутри библиотеки aclass?

Я занимаюсь разработкой приложений в Windows Forms с C # языка в vs2017. У меня есть локальная база данных SQL, что я получить доступ к многим из разных WinForm. Я хотел создать статическую библиотеку классов, который содержит статические методы для чтения или добавить данные в свою базу данных только, чтобы моя программа аккуратно и легко читать. Обычно, я объявлял мой ConfigurationManger в WinForm с InitializeComponent (), но в моем классе библиотеки я получаю сообщение об ошибке, если я объявить его в моем классе, я могу объявить его только в моем методе, но это означает, что я должен объявить его внутри все мои методы, которые не является правильным способом сделать я думаю. Итак, я спрашиваю, что это лучший способ сделать это? Это мое заявление: ConnectionString = ConfigurationManager.ConnectionStrings [ "GTC_Frater_Razes.Properties.Settings.db_alarmeConnectionString"] ConnectionString;.
lawir
1

голосов
0

ответ
39

Просмотры

Исполнение же кода занимает больше времени в IIS, чем в настольном приложении

У меня есть модуль, который выполняет операцию базы данных сервера SQL множественной. Когда я выполняю этот модуль в IIS (внутри RESTful службы), выполнение этого модуля занимает примерно в два раза время, необходимое во время выполнения внутри настольного приложения на одном компьютере. В обоих IIS рабочего стола приложение, программные факторы, такие как количество операций базы данных, данные и т.д. повлиявших одинаковы. Я попытался изменить различные свойства пула приложений, но я не мог снизить время работы в IIS, чтобы соответствовать тому, что в настольном приложении. Существует ли какая-либо настройка в IIS, которые помогают понижающее времени работы модуля? Работает в IIS, как предполагается, будет медленнее, чем в обычном настольном приложении? Зачем?
1

голосов
1

ответ
41

Просмотры

Как ограничить доступ к другим дочерним формам, когда та или иная форма ребенка активна?

В моей MDI форме приложения есть кнопка Просмотр в родительской форме. Когда эта кнопка нажата она показывает сохраненную запись активированного в настоящее время формы. Мое требование, когда форма Просмотр открывает другие дочерние формы не должны быть доступны до тех пор, пока форма Просмотр не закрывается. Я попытался с помощью BrowseForm.ShowDialog (); вместо BrowseForm.Show (); Но это бросает следующее исключение. Форма, которая не является формой верхнего уровня не могут быть отображены в виде модального диалогового окна. Удалить форму из любой родительской формы перед вызовом ShowDialog
1

голосов
2

ответ
36

Просмотры

Передача целочисленных переменных в SQL заявление из другой формы

Я работаю со школьным проектом, в котором мы должны построить простую систему бронирования, которая использует базу данных SQL. Б язык C # и среда Visual Studio Community 2017. Я пытаюсь построить функцию, где пользователь выбирает строку из dataGridView1 и нажимает «кнопку Добавить счет-фактура». Booking_id извлекается из dataGridView1 и передается в Form2, где бронирование связанные данные с booking_id искали. Затем эти данные представлены в dataGridView2 в котором перечислены все услуги, включенные в один указанный пользователем бронирования. База данных содержит три соответствующие таблицы; Бронирование, обслуживание и BoughServices. Бронирование содержит столбец booking_id (INT) Услуги содержит столбцы service_id (INT), имя (VARCHAR) и цена (INT) BoughtServices, содержит столбцы Booking.booking_id (INT), Service.service_id (INT) и сумма (INT) Код на Form1: // Создать класс данных. общественный статический класс DataToForm2 {открытые статические INT booking_id; } // кнопку Пользователь нажимает "Добавить новый счет-фактуру. частная пустота button_CreateInvoice_Click (объект отправителя, EventArgs е) {Form2 f2 = новый Form2 (); // Примечание: CurrentRow.Cells [0] содержит booking_id. DataToForm2.booking_id = Convert.ToInt32 (dataGridView1.CurrentRow.Cells [0] .value); f2.Show (); } Код на Form2: частная пустота Form2_Load (объект отправителя, EventArgs е) {с использованием (подключение SqlConnection = новый SqlConnection (ConnectionString)) {// Устанавливаем SQL строки запроса. Строка запроса = "SELECT Service.name, Services.price, BoughtServices.amount" + "ОТ Сервис" + "INNER JOIN Service.service_id ON BoughtServices.service_id" + " Я потратил все большее количество часов, чтобы понять это и найти решение из учебников, но до сих пор все они не увенчались успехом. Interestigly, все работает нормально, когда я добавляю booking_id непосредственно в SQL заявления. В других случаях, где Booking.booking_id = 2 работает как шарм. Может кто-нибудь мне помочь и предложить, как я должен форматировать мой код так, что я в состоянии выполнить требуемые действия? Заранее спасибо!
Jokhe
1

голосов
1

ответ
72

Просмотры

Как ограничить keyclicks до только цифры, прежде чем они будут видеть в TextBox Windows, ФОМС?

Мое приложение запрашивает номер, который должен быть ограничен до: целого положительного числа Не могу иметь ведущие нули 3-значный максимума Это то, что диалог мой выглядит, как я полагаю, что я нашел правильный путь для реализации большинства требований, используя событие TextChanged WinForms , Часть, где мне нужна помощь в предотвращении любого не-значное нажатия клавиши от просмотра, даже от доли секунды. Своего рода эхо отмены / замены не требуется.
Travis Banger
1

голосов
1

ответ
35

Просмотры

Stopping focus changed event being handled multiple times in one second

У меня есть фокус изменился обработчик события (СМА) на фоне MTA нить для обновления списка элементов для текущего активного окна, которое увольняют несколько раз в одну секунду при смене активного окна. Я пытаюсь сделать это пойти один раз, а затем ждать в течение одной секунды перед обработкой каких-либо других событий. Проблема в минуту, что таймер запускается, но никогда не срабатывает? Я предполагаю, что есть лучший способ сделать это? Пример кода будет большим. общественного недействительный HandleFocusChangedEvent (IUIAutomationElement отправитель) {// А фокус события изменения был отправлен в активном окне или какой-потомком него. // Проверяем, что это событие не прибыл во время, мы удалим обработчик событий на выключение. если (_fAddedEventHandler!) {возвращения; } // Все обработчик событий нужно сделать, это уведомить основной поток пользовательского интерфейса, что // список элементов должен быть обновлен, чтобы убедиться, что он показывает самый текущий список. // Мы только хотим сделать это один раз каждый второй Таким образом, с помощью таймера / счетчика, если (focusChangedCounter == 0) {controllerDispatcher.BeginInvoke (_focusChangedEventHandlerDelegate); focusChangedCounter = 1; если (focusChangedBufferTimer == NULL) {focusChangedBufferTimer = новый System.Windows.Forms.Timer (); focusChangedBufferTimer.Tick + = новый EventHandler (focusChangedBufferTimer_Tick); focusChangedBufferTimer.Interval = 1000; focusChangedBufferTimer.Start (); }}} Частная пустота focusChangedBufferTimer_Tick (объект отправителя, EventArgs е) {focusChangedCounter = 0; focusChangedBufferTimer.Stop (); focusChangedBufferTimer = NULL; }
Rachel 674
1

голосов
1

ответ
38

Просмотры

Как установить пользовательский шрифт из ресурсов для таможенного контроля?

Я создал пользовательский элемент управления, с помощью переопределения из-под контроля. Я выполнил некоторые настройки для сериализации и десериализации настройки шрифта. Однако, когда я установить шрифт из ресурсов с помощью метода AddMemoryFont (), шрифт не получает обновленный к контролю. Даже я переопределить свойство шрифта и FontChanged событие и называется базовые функции. Есть ли что-то я пропускаю, чтобы обновить шрифт из ресурсов? Если да, поделитесь какие-либо предложения, чтобы обновить шрифт. Пример Примечание Получение шрифта из ресурсов, как в предложении пользовательских шрифтов Спасибо заранее, Arulpriya
Arulpriya
1

голосов
0

ответ
40

Просмотры

Обеспечение объект работает длительное задание не получает повторно инстанцирован

У меня есть приложение WinForms, которое получает данные автомобилей из Sqlite файла базы данных, которая генерируется файл CSV из WebService, и связанные с ним детали для каждого автомобиля. Когда инстанс, класс автомобиля заполнит все свойства из базы данных и получает много данных из WebService, который занимает около 30 секунд, чтобы закончить, так что я просто называю задачу асинхронной после заполнения свойства базы данных и дайте ему поработать асинхронном. После того, как веб-сервис возвращает все данные и вся работа выполняется, то экземпляр сохраняется в списке, который работает как внутренний кэш. Все работает хорошо, пока пользователь не сделает операцию на части, которая требует собственности ParentCar быть возвращен в то время как метод WebService все еще работает, в результате чего новый автомобиль, чтобы быть создан и повторно опроса веб-службы, как много раз свойство запрашивается в то время как Автомобиль Безразлично» т существуют в списке кэша. Это останавливается, как только первый экземпляр заканчивает обработку, но все изменения будут перезаписаны каждый раз, когда последующие экземпляры закончить. Я изо всех сил, чтобы найти способ, чтобы убедиться, что автомобиль только инстанс один раз без блокировки пользовательского интерфейса в течение срока службы приложения, любые идеи? Это код, который я в настоящее время имею: класс автомобиль общественного {частного List _parts = новый список (); Id общественного строка {получить; частный набор; } Общественного ИНТ DbIndex {получить {вернуться DbClass.GetCarIndexById (Id); }} ReadOnlyCollection Часть общественных {Get => _parts.AsReadOnly (); } Общественного автомобиля (System.Data.SQLite.SQLiteDataReader sQLiteDataReader) {// Код для загрузки всех свойств от sQLiteDataReader Task.Run (() => LongRuningWebServiceTask ()); } Частная асинхронной Task LongRuningWebServiceTask {// Задолго выполнение кода, который будет заполнять даже больше свойств SaveToInternalDb (); } Частная пустота SaveToInternalDb () {если (DbIndex> -1) DbClass.UpdateCarData (это); еще DbClass.AddCar (это); } общественного недействительными RelateParts (IEnumerable части) {_parts.AddRange (части); } ~ Автомобиль () {SaveToInternalDb (); }} Общественного класса Часть {публичная строка ParentCarId {получить; частный набор; } Общественного автомобиля ParentCar {получить {Task getCar = DbClass.GetCarById (ParentCarId); getCar.Wait (); вернуться getCar.Result; }}} Общественного статический класс DbClass {частный статический SQLiteConnection sqlConn; частные чтения строка SQLFILE = "pathToDbFile"; частный статический список CarCache = новый список (); общественности статической асинхронной Задача GetCarById (строка> carId, BOOL ignoreCache = ложь) {Car foundCar = NULL; если (! ignoreCache) foundCar = CarCache.Find (s => s.Id == carId); если (foundCar == NULL) {попробуйте {строка SQL = string.Format ( "SELECT * FROM all_Cars WHERE автомобиля = '{0}';", carId); используя (SQLiteCommand команды = новый SQLiteCommand (SQL, sqlConn)) {использования (SQLiteDataReader читатель = (SQLiteDataReader) ждет command.ExecuteReaderAsync ()) {в то время как (ждет reader.ReadAsync ()) foundCar = новый автомобиль (считыватель)); }}} Задвижка (Исключение е) {строка т = e.Message; } Если (foundCar! = NULL) {вар partsList = ждут GetPartsByCarId (carId); если (partsList.Count> 0) Car.RelateParts (partsList); если (ignoreCache!) {если (foundCar.DbIndex == -1) CarCache.Add (foundCar); }}} Вернуть foundCar; } Общественности статической асинхронной Task GetPartsByCarId (строка carId) {Список foundParts = новый список (); INT индекс = GeCarIndexById (carId); Автомобиль foundCar = индекс> -1? CarCache [индекс]: нуль; если (foundCar! = NULL) foundParts = ждут GetPartsByCarId (carId); вернуться foundParts; } Государственной статической силы InitiateSqlConnection () {если (sqlConn == NULL) {sqlConn = новый SQLiteConnection ( "Data Source =" + sqlFile.FullName + "Version = 3;"); попробуйте {sqlConn.Open (); } Задвижка (Исключение е) {вар т = e.Message; }} Еще {если (sqlConn.State == System.Data.ConnectionState.Broken || sqlConn.State == System.Data.ConnectionState.Closed) sqlConn.Open (); }} Открытые статические INT GetCarIndexById (строка carId) {INT индекс = -1; для (Int с = 0; с <CarCache.Count; C ++) {если (CarCache [с]. Id == carId) {индекс = с; перерыв; }} Возвращают индекс; } Государственной статической силы AddCar (автомобилейПункт) {CarCache.Add (автомобиль); } Государственной статической силы UpdateCarData (для автомобилей) {если (! Автомобиль = NULL) {INT индекс = car.DbIndex; если (индекс> -1) CarCache [индекс] = автомобиль; }}}
HeD_pE
1

голосов
0

ответ
78

Просмотры

SKYPE4COMLib не может отправить сообщение другому пользователю

Мы делаем окна программного обеспечения для автоматизации на основе, которая использует скайп ком библиотеку. С SKYPE4COMLib я пытаюсь отправить сообщение другому пользователю скайп из приложения C # с ниже данного кода. вар friendSelected = listBox1.SelectedItem; Еогеасп (пользователь Пользователь в skype.Friends) {ChatMessage LiveMess = новый ChatMessage (); если (== user.Handle friendSelected.ToString ()) LiveMess = skype.SendMessage (user.Handle, "Nice Ну"); } Даже если метод skype.SendMessage правильно выполняет без каких-либо исключений. Он не посылает сообщение. Любая помощь в этом случае будет полезно.
parth1729
1

голосов
0

ответ
158

Просмотры

конвертировать Cefsharp закадровый в WinForm

Можно ли преобразовать cefsharp.offscreen браузер cefsharp.winform? В моем проекте я хочу работать с закадровым, но когда-то нужно, чтобы увидеть, что произошел в браузере, так что я должен показать браузер для малого времени ... Кроме того, я знаю, что я могу использовать из cefsharp.winform и загрузки страницы / браузер в новом WinForm, а затем после того, как создать форму скрыть, что тем не менее я хочу минимальное использование оперативной памяти, процессора и т.д., так что я думаю, закадровый лучше для производительности. так что, если я могу преобразовать закадровый в Winform я могу показать браузер только тогда, когда мне нужно, и т.д ... так что есть какое-либо решение?
MrUnknow
1

голосов
0

ответ
64

Просмотры

Глобальный KeyBoardHook де-регистрацией события KeyPress

Мы возникли некоторые проблемы с событием клавиатуры KeyPress. Он купируется при нажатии клавиши события больше времени для выполнения запроса. Мы имеем поддержку KeyBoardHook, которая будет использовать для захвата глобальных событий клавиатуры. Это тот же класс, как упоминание в этом так ответить. Microsoft recommnds, что обратный вызов для клавиатуры крючка должен быть как можно короче, так как это на самом деле часть обработчика прерываний. Если прерывание занимает слишком много времени, мешающая часть последовательной цепи обработчиков просто удаляется. Так как мы не сказали, когда это происходит, нет никакого способа его обнаружения. Обработчик клавиатуры просто перестает работать. частный IntPtr HookCallback (интермедиат nCode, IntPtr WPARAM, IntPtr LPARAM) {если (nCode> = 0) {INT vkCode = Marshal.ReadInt32 (LPARAM); INT keyAction = wParam.ToInt32 (); EventHandlerKey (keyAction, vkCode); } Вернуть CallNextHookEx (hookId, nCode, WPARAM, LPARAM); } Частный недействительным EventHandlerKey (INT keyAction, внутр KEYCODE) {// Некоторые процесса, который принимает долгое время ..! } Любые предложенные решения для решения этой проблемы?
1

голосов
0

ответ
72

Просмотры

C # Ребенок WinForm с ElementHost искажает родительскую форму в 150% дисплее

Я пытаюсь использовать ElementHost в моей форме ребенка, но он искажает мою родительскую форму. Попробовал обновить и свести к минимуму / максимизировать родительскую форму, но не работает. Обратите внимание, это происходит только тогда, когда я нахожусь в 150% разрешении дисплея. (Вам нужно будет изменить на 150% дисплей затем перезапустить для того, чтобы это повторить.) Форма Родитель искажается при открытии дочерней формы с элементом хозяина
Ric
1

голосов
1

ответ
44

Просмотры

Обнаружение выберите Панель SplitContainer в

У меня есть форма для Windows с именем Form1 и внутри меня динамический SplitContainer имени SplitContainer. Я хочу знать, какая панель выбирается при щелчке мыши во время выполнения. Я пытался использовать Mouseclick событие в свойствах SplitContainer, но я не удается.
Birame Ba
1

голосов
0

ответ
165

Просмотры

Обработка WndProc на панели

Я делаю окно Winform с настраиваемым Resizer (без границ). Я рисую Resizer сцепление и обрабатывать несколько сообщений в WndProc. Всего ХА: Я не знаю, что происходит внутри WndProc, я просто знаю, что это делает то, что я хочу, чтобы это сделать (я вставил в сниппет из somehwere). Теперь я хочу, чтобы добавить панель, пристыкован к нижней части моей формы. Когда я делаю это, однако, мое изменение размера функциональность исчезает. Есть ли какой-нибудь способ, чтобы восстановить эту функцию без необходимости программировать свой собственный Resizer. Я думаю, функциональность теряется, потому что он обрабатывает только изменение размера на главной форме, а не на каком-либо из его элементов управления. защищенный переопределения недействительным WndProc (исх сообщение м) {если (m.Msg == 0x84) {// Trap WM_NCHITTEST Точечные поз = новый пункт (m.LParam.ToInt32 ()); поз = this.PointToClient (позы); если (pos.X> = this.ClientSize.Width - cGrip && pos.y> = this.ClientSize.Height - cGrip) {m.Result = (IntPtr) 17; // HTBOTTOMRIGHT возврата; }} Base.WndProc (ссылка м); } Как я уже говорил в предыдущих вопросах, я не опытный программист C # вообще. У меня очень мало опыта и методов, которые я использую, вероятно, может быть безумно оптимизирован, поэтому подробное описание вашего ответа будет очень признателен. Я не опытный программист C # вообще. У меня очень мало опыта и методов, которые я использую, вероятно, может быть безумно оптимизирован, поэтому подробное описание вашего ответа будет очень признателен. Я не опытный программист C # вообще. У меня очень мало опыта и методов, которые я использую, вероятно, может быть безумно оптимизирован, поэтому подробное описание вашего ответа будет очень признателен.
Vaf Daf

Просмотр дополнительных вопросов