Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von schorge
Thema: RichTextBox WordWrap - new Line \r\n
Am im Forum: GUI: WPF und XAML

Moin,

ich habe eine RichTextBox in WPF mit WordWrap und möchte die Zeilenlänge begrenzen.
Optisch passiert dass durch den RichTextBox.Document.MaxPageWidth,
komme ich über den MaxPageWidth, wird visuell eine neue Zeile angefangen,
leider aber nicht im TextRange bzw wird keine neuer Rücklauf erstellt...

RichTextBoxSample

Convert the RichTextBox Content to Text:



if (rtb.Document != null)
            {
                TextRange textRange = new TextRange(                    
                    rtb.Document.ContentStart,                    
                    rtb.Document.ContentEnd
                );

                var currentLine = textRange.Text;
                //Result:
                //" thisText ist new textwith textwrap and here no new line after MaxPageWidth only is here\r\nafter press SHIFT+ENTER a new Line :(\r\n"
                return textRange.Text;
            }

Gibt es einen "einfachen" weg das \r\n hier z.B. nach dem "and" einzufügen ?

Thema: ShowDialog soll nur letzte Form einfrieren
Am im Forum: GUI: Windows-Forms

Hatte ich mir schon gedacht.
Bisher habe ich diese Lösung, welche Parameter überträgt / Methoden auslöst beim beenden des Modalen Dialogs:


            FormDialog formDialog = new FormDialog();
            formDialog.FormClosed += (s, args) =>
            {
                if (formDialog.textBoxParameter != null)
                {
                    //FIRES ON CLOSE DIALOG
                    textBox1.AppendText("Dialog  " + formDialog.textBoxParameter.ToString() + Environment.NewLine);
                }
            };
            formDialog.Show();


Dialog Form:


public partial class FormDialog : Form
    {

        public string textBoxParameter { get; set; }

        public FormDialog()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            textBoxParameter = textBox1.Text;
            this.Close();
        }
    }


Einfrieren der auslösenden Form habe ich (ohne Beispielcode) mit einem UserControl gelöst,
das UserControl blockiert dann den Zugriff und ist zumdem noch mit this.Opacity = 0.5D;
und schwarzem Hintergrund versehen, um zu erkennen, wo ich gerade arbeite.

Thema: ShowDialog soll nur letzte Form einfrieren
Am im Forum: GUI: Windows-Forms

Moin,

ich möchte gerne mit mehreren Fenstern arbeiten, aber bei dem Öffnen eines Dialogs nicht alle Fenster einfrieren.
Gibt es eine Möglichkeit das vereinfacht zu realisieren ohne aufwendiges Programmieren mit Show() ?

Thema: Projekt auf .Net 6.0 upgraden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat
WinForms gibt's nicht für .NET Standard

Mal ein Beispiel, ich habe einen Verweise auf ein Projekt mit NET Framework 4.8 etc., in denen sich ein WinForm UserControl befindet.
Lösche ich das UserControl und änderere das Projekt- Framework auf .NET Standart 2.0, kann ich ich bei meinem .NET 6
doch auf das Projekt verweisen und ein WinForms UserControl WinForms in .NEt 6 erstellen und auf die Projekt Namespaces verweisen.

Thema: Projekt auf .Net 6.0 upgraden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Muss das Thema hier nochmal aufgreifen, da ich momentan auch vor der Umstellung NET48 zu NET 6 stehe.

Leider habe ich einige WinForms Projekte in mein Projekt integriert, welche UserControls haben und nicht unter NET laufen,
ist es möglich in einer Projektmappe Frameworks zu mischen? - Hauptprojekt mit NET 6 und Verweise dann auf NET48 Projekte?

Oder muss ich alles was mit WinForms zu tun hat,
alle Forms löschen und von NET Framework 4.8 auf .NET Standard 2.0 umstellen?

Thema: Blazor javascript static content access - 404
Am im Forum: Web-Technologien

ich habe den Fehler gefunden

in der program.cs


var provider = new FileExtensionContentTypeProvider();
// Add new mappings
provider.Mappings[".fbx"] = "application/x-msdownload";

app.UseRouting();
app.UseDefaultFiles();
app.UseDirectoryBrowser();


app.UseStaticFiles();

app.UseStaticFiles(new StaticFileOptions
{
    ContentTypeProvider = provider
    //Alternativ:
    //ServeUnknownFileTypes = true
});


natürlich ist es sicherer mit den Mappings, wenn die App öffentlich ist.
Ansonsten ServeUnknownFileTypes = true

Thema: Blazor javascript static content access - 404
Am im Forum: Web-Technologien

Moinsen,

ich habe folgendes Problem, das die JavaScript von einer three.js keine Objects in
wwwroot findet.

Blazor Server APP NET 6.0

Index.razor


protected override async Task OnAfterRenderAsync(bool firstRender)
    {
        if (firstRender)
        {
            await JSRuntime.InvokeVoidAsync("loadJs", "threeMain.js");
        }
    }

threeMain.js


const loader = new FBXLoader();
	loader.load('data/fbxModel.fbx', function (object) {...

hier findet der loader das fbx object nicht obwohl es im Ordner wwwroot/data liegt,
auch unter wwwroot direkt wird nichts gefunden.

Kann ich unter Blazor vorher (Programm.cs) die Dateien referenzieren ?
Ein img wird auch erst gefunden, wenn es auf der razor-html angefordert wird...


hiernnochmal die program.cs


var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor();
builder.Services.AddSingleton<WeatherForecastService>();


var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Error");
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

app.UseHttpsRedirection();


app.UseRouting();

app.UseStaticFiles();

app.MapBlazorHub();
app.MapFallbackToPage("/_Host");

app.Run();

Thema: Kalender Ende 2100
Am im Forum: Rund um die Programmierung

Ich habe es grade nur am Tablet beim Google Calendar und internen Android Kalender geteset, aber es geht nur bis zum Jahr 2100,
Bin nur Hobby und z.B. bei MySQL Date etc, ohne das ich es erlebe, aber theoretisch ist doch bei 31.12.9999 Schluss oder warum 2100?

Thema: Wie kann ich die Id bei einem Entity Framework Entity auf NULL setzen?
Am im Forum: Datentechnologien

@abt Danke, dann vergessen wir den Code mal schnell

Thema: Wie kann ich die Id bei einem Entity Framework Entity auf NULL setzen?
Am im Forum: Datentechnologien

Habe eine DbExtension, aber ID ist immernoch null


//-----------------

foreach(var newMember in members)
{
    var member = this.actualMember.Clone();
    member.name = "change values";
    //set null not allowed for unique id long
    //member.id = null;

    db.MemberActivations.Set<members>().AddAndSetIdToNull(newmember, x => x.id);
}
 
db.MemberActivations.SaveChanges();

//-----------------

 public static class DbSetExtensions
    {        

        public static T AddAndSetIdToNull<T>(this DbSet<T> dbSet, T entity, Expression<Func<T, object>> predicate = null) where T : class, new()
        {
            var newEntitei = (T)Activator.CreateInstance(entity.GetType());
            

            foreach (var property in entity.GetType().GetProperties())
            {
                PropertyInfo propertyS = newEntitei.GetType().GetProperty(property.Name);
                var value = property.GetValue(entity, null);

               
                var operType = ((UnaryExpression)predicate.Body).Operand;
                var memberName = ((MemberExpression)operType).Member;                
           
                if (memberName != propertyS)
                {
                    propertyS.SetValue(newEntitei, property.GetValue(entity, null), null);
                }
                
            }
           
            //id is 0 :(
            bool exists = false;            
            return !exists ? dbSet.Add(newEntitei) : null;
        }
    }

Thema: Wie kann ich die Id bei einem Entity Framework Entity auf NULL setzen?
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: MySql

Hallo,
ich benutze das EntityFramework von MS welches mir mittels TextTemplationg T4
meine classes erstellt.


MySql.Data.EntityFramework
Entity Framework 6 (EF6

Ich möchte gerne Entitäten speichern bei Abänderung von
wenigen values:


using (var db = new DbContext())
                    {
                        foreach(var newMember in members)
                        {
                            var member = new Member();
                            member = this.actualMember;
                            member.name = "change values";
                            //set null not allowed for unique id long
                            //member.id = null;

                            db.MemberActivations.Add(member);
                        }
                       
                        db.SaveChanges();
                        //only one item saved
                    }

leider kann ich die ID nicht auf NULL setzten,
wie erstelle ich nun mehrere Datensätze ohne diese
komplett neu ohne unique ID zu erstellen?

Thema: [ERLEDIGT] Encoding unbekannter encoding type
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Tausendmal Danke!!

using (StreamReader sr = new StreamReader(path, System.Text.Encoding.GetEncoding(850)))

Habe die 850 einfach nicht gefunden

Thema: [ERLEDIGT] Encoding unbekannter encoding type
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Encoding unbekannter encoding type

ich habe eine Datei (GAEP d.83) und lese den Text mit einem StreamReader aus:

TEXTDATEI:

T1Bei Anlieferung ist „uáerste Rcksichtnahme auf Mitarbeiter, Besucher   000032
T1und insbesondere Schler (Grundschler) zu nehmen. Anlieferungen sind   000033
T1w„hrend der Pausenzeiten nicht gestattet. Ausnahmereglungen fr         000034
T1Anlieferungen w„hrend der Pausenzeiten sind nicht gestattet.            000035

ich habe von UTF8, UTF16, utf-16BE und ASCI alle probiert,
habe aber immer die Umlaute falsch oder als Symbole,
r\nBei Anlieferung ist ?u?erste R?cksichtnahme auf Mitarbeiter, Besucher   \r\nund insbesondere Sch?ler (Grundsch?ler) zu nehmen. Anlieferungen sind   \r\nw?hrend der Pausenzeiten nicht gestattet. Ausnahmereglungen f?r         \r\nAnlieferungen w?hrend der Pausenzeiten sind nicht gestattet.

richtig angezeigt bekomme ich es im MS Office Word,
wo ich anfangs die Codierung MS-DOS auswähle.
Wie bekomme ich das mit dem StreamReader hin?

Thema: Volltextsuche mit mehreren Wörtern im MySQL?
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: MySql

Folgender Fall:

ich verzweifel an einer Volltextsuche mit mehreren Wörtern:

Beispiel: Ich Suche: korn meta

Die Spalten sind wie folgt geändert:

ALTER TABLE  `music` ADD FULLTEXT (
`titel`,`interpret`,`genre`
);


SELECT * FROM `music` WHERE MATCH (`titel`,`interpret`,`genre`) AGAINST ('+korn +meta' IN BOOLEAN MODE)

=> 3 |Freak on a leash| Korn |Heavy Metal
=> 11 |Blind |Korn |Heavy

 0.0025 Sekunden
Warum ist da die ID 11 dabei, obwohl "Meta" in keiner Column vorhanden ist?

Folgender Befehl klappt zwar, aber dauert länger (hier nur ein Test, in meinem Fall 120.000 rows)

SELECT * FROM 
(SELECT * FROM `music` WHERE `titel` LIKE '%met%' OR `interpret` LIKE '%met%' OR
`genre` LIKE '%met%') AS custom
WHERE `titel` LIKE '%ko%' OR `interpret` LIKE '%ko%' OR `genre` LIkE '%ko%'

=> 3 |Freak on a leash| Korn |Heavy Metal

0.0060 Sekunden

Thema: Kommunikation zwischen Webpage und Forms
Am im Forum: Web-Technologien

Okay, ich habe folgendes für bi-directional Optionen gefunden:

    -SignalR
    -WebAPI and WebSockets
    -Socket IO (framework for Node.js)
    -Alchemy-Websockets
    -Fleck
    -SocketCluster (framework for Node.js)

Ein REST API habe ich schon mal entwickelt und kann darauf aufbauen (Mit JSON)
Interessant finde ich dann die SqlDependency Class die Änderungen
an der DB die Events auslösen lässt...

Thema: Kommunikation zwischen Webpage und Forms
Am im Forum: Web-Technologien

Moin,

ich habe eine C#-Forms Geschichte die einen lokalen Server
erstellt mittels HttpListener.
Jetzt bin ich auf der Suche nach einem Sample oder ähnliches
in dem ich Beispiele für die Kommunikation zwischen Server/Webseite Send/Request habe.

Sicherheit spielt erstmal keine Rolle da alles Lokal abläuft.


public static void StartListening()
        {
            HttpListener listener = new HttpListener();
            Stream _ouput;

            SetPrefixes(listener);

            if (listener.Prefixes.Count > 0)
            {
                listener.Start();

                while (true)
                {                    
                    HttpListenerContext context = listener.GetContext();
                    HttpListenerRequest request = context.Request;
                    HttpListenerResponse response = context.Response;


                    string tester = AppDomain.CurrentDomain.BaseDirectory + @"web\index.html";


                    string contents = File.ReadAllText(tester);                    
                    string html = contents;

                    byte[] buffer = Encoding.UTF8.GetBytes(html);

                    response.ContentLength64 = buffer.Length;
                    _ouput = response.OutputStream;
                    _ouput.Write(buffer, 0, buffer.Length);

                    //if (request.HttpMethod == "POST")
                    //{
                    //}

                    string text;
                    
                    try
                    {
                        using (var reader = new StreamReader(request.InputStream, request.ContentEncoding))
                        {
                            text = reader.ReadToEnd();
                            // Here Communicate with my Classes>Items>Events
                        }
                    }
                    catch
                    {

                    }
                }
            }
        }

        private static void SetPrefixes(HttpListener listener)
        {
            String[] prefixes = new String[] { "http://localhost:8000/" };

            int i = 0;

            foreach (string s in prefixes)
            {
                listener.Prefixes.Add(s);
                i++;
            }
        }

index.html


<html>
<header><title>This is title</title></header>
<body>
    Hello world
    <form action="/action_page.php" method="post">
        First name:<br>
        <input type="text" name="firstname" value="Mickey"><br>
        Last name:<br>
        <input type="text" name="lastname" value="Mouse"><br><br>
        <input type="submit" value="Submit">
    </form>
</body>
</html>


Die textvariable bleibt aber leider nach dem Submit leer :(

Wo ich hin will:
Button in Forms ist ON
Button auf Webpage ist ON
beide sollen Kommunizieren

Thema: Xamarin.Android NavigationView Seite wechseln/Layout ändern
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Ich kämpfe mich grade durch tausende Beispiele und die Xamarin Doku
und will nur was Grundlegendes erreichen, das sich die content_main.axml durch ein anderes
Layout ersetze.
Ich habe in VS das vorgefertigte NavigationsDrawnerObjekt verwendet,

Die content_main.axml ist in der app_bar_main.axml includet.

Intent und ActivitiyContentDetail werden dann leider wer App-Bar noch
Nav angezeigt.

Wie kann ich die Navigation beibehalten und je "Seite" trotzdem
ein eigenes Layout mit eigner Activitiy.cs erstellen?


MainActivity.cs


 protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_main);

            Android.Support.V7.Widget.Toolbar toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
            SetSupportActionBar(toolbar);

            

            FloatingActionButton fab = FindViewById<FloatingActionButton>(Resource.Id.fab);
            fab.Click += FabOnClick;

            DrawerLayout drawer = FindViewById<DrawerLayout>(Resource.Id.drawer_layout);

            ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, Resource.String.navigation_drawer_open, Resource.String.navigation_drawer_close);
            drawer.AddDrawerListener(toggle);
            toggle.SyncState();

            NavigationView navigationView = FindViewById<NavigationView>(Resource.Id.nav_view);
            navigationView.SetNavigationItemSelectedListener(this);
            

            
            layoutContentDetail = FindViewById<RelativeLayout>(Resource.Id.layoutContentDetail);
			
			}

 public bool OnNavigationItemSelected(IMenuItem item)
        {
            int id = item.ItemId;

            if (id == Resource.Id.nav_camera)
            {
                Intent setlayoutContentDetail = new Intent(this, typeof(ActivitiyContentDetail));
				StartActivity(setlayoutContentDetail);
				
                // Beim Intent wird das Complette Layout gewechselt,
		// es soll nur das content_main.axml durch ein andere layout ersetzt werden
                // und das navigationsmenü erhalten bleiben
                
            }
            else if (id == Resource.Id.nav_gallery)
            {
                
            }
            else if (id == Resource.Id.nav_slideshow)
            {
                
            }
            else if (id == Resource.Id.nav_manage)
            {

            }
            else if (id == Resource.Id.nav_share)
            {

            }
            else if (id == Resource.Id.nav_send)
            {

            }

            DrawerLayout drawer = FindViewById<DrawerLayout>(Resource.Id.drawer_layout);
            drawer.CloseDrawer(GravityCompat.Start);
            return true;
        }



ActivitiyContentDetail.cs


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;

namespace Simsons
{
    [Activity(Label = "ActivityBestellung")]
    public class ActivityBestellung : Activity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.layoutContentDetail);
        }
    }
}

app_bar_main.axml


<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">
        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />
    </android.support.design.widget.AppBarLayout>
    <include
        layout="@layout/content_main" />
    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="@dimen/fab_margin"
        app:srcCompat="@android:drawable/ic_dialog_email" />
</android.support.design.widget.CoordinatorLayout>

content_main.axml


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/layoutMain"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:showIn="@layout/app_bar_main"
    android:minWidth="25px"
    android:minHeight="25px">   
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/hauptFrame"
        android:minWidth="25px"
        android:minHeight="25px">
        <TextView
            android:text="Seite HAUPTFRAME"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/textView1" />
    </FrameLayout>
</RelativeLayout>

Thema: Von Xamarin Android direkt auf MySql zugreifen?
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Vielen Dank Euch!
Ich habe das ganze jetzt prinzipiell verstanden und werde mich nun mit der Umsetzung mit einer
NodeJS WepAPI auseinandersetzen.

Thema: Von Xamarin Android direkt auf MySql zugreifen?
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Danke schon mal,

jetzt nur nochmal zum Verständnis:

Die WebAPI ist quasi die Brücke zwischen meiner App und der MySQL DB,
Der ASP.NET CORE WebAPI muss lokal auf einem Windows, einer VM laufen,
D.h.
App => HTTP Request/Response => WebAPI auf dem NAS => Insert/Update/Delete on MySQL

Bei mir fällt leider APS aus, habe kein x86 NAS,
was haltet ihr davon RESTful CRUD With Java and MySQL
bzw. welche alternative habe ich für ARM?

Thema: Von Xamarin Android direkt auf MySql zugreifen?
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Ja, verstehe.
Da ich es früher oder später gänzlich umstellen muss auf einen WebService,
muss ich es gleich vernünftig realisieren.

Gibt es da ein verständliches HowTo für wie ich an meine MySql Daten über einen
WebService komme?

Thema: Von Xamarin Android direkt auf MySql zugreifen?
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Doch, mit dem Browser habe ich Zugriff auf NAS und phpmyAdmin.
Sollte der Android-Emulator kein Zugriff haben, wäre der MySql Fehler
ein anderer.

Thema: Von Xamarin Android direkt auf MySql zugreifen?
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Ja, es reicht mir auch dies lokal zu erledigen. Ich komme auch lokal auf den NAS mit dem Chrome Browser im Android Emulator- nur die Verbindung zum MySql Server scheitert.

Thema: Von Xamarin Android direkt auf MySql zugreifen?
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Moin,

ich habe eine Android XAMARIN Anwendung und möchte eine Verbindung zu einer bestehenden
MySql DB auf einem NAS aufbauen, später extern mittels VPN.

Jetzt aber zu meinem Problem:
Ich habe VB2017 15.7.5 mit einer einfachen Abfrage.

private bool mySqlConnection()
        {
            bool connect = false;

            string myConnectionStrings = "Server=192.168.178.***;Database=table;uid=root;Password=xxx";

            MySqlConnection connection = new MySqlConnection(myConnectionStrings);
            MySqlCommand command = connection.CreateCommand();
            command.CommandText = "SELECT * from artikel_table WHERE artikel_id='10'";
            MySqlDataReader Reader;

            try
            {
                connection.Open();
                Reader = command.ExecuteReader();

                while (Reader.Read())
                {                    

                    FindViewById<EditText>(Resource.Id.txtScanName).Text = Reader["artikel_id"].ToString();
                    
                }

                Reader.Close();
                connection.Close();

            }
            catch (Exception ex)
            {
                Toast.MakeText(ApplicationContext, "Fehler:" + ex.Message, ToastLength.Long).Show();
            }

            return connect;
        }

Im Android Emulator Oreo 8.0 API 26 kann ich in Chrome über phpMyAdmin auf die DB zugreifen,
nur in meiner Test-App kommt:
Fehler
Authentication to host '192.168.178.***' for user 'root' using method 'mysql_native_password' failed with message: Access denied for user 'root'@'192.168.178.***' (using password: YES)"

genutzt wird Nuget Xamarin.MySql.Data

Neustarten und Rebuildings helfen leider auch nicht...

Thema: Färben jeder 2. Column im DGV nach niedrigstem Wert
Am im Forum: GUI: Windows-Forms

Ok, vielen dank für den Tipp mit der Schleife...
Ich habe es nun mit einem Bool gelöst. noch die DoubleBuffered Erweiterung des DGV hinzugefügt und komme zu dem gewünschten Ergebnis.
In dem CellEndEdit-Event müsste ich ja auch alle Rows und Cells durchlaufen und hätte
die Einfärbung nicht beim Laden oder Programmgesteuerten abändern.


private bool cellFormating;


private void dataGridViewPreise_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {          

            if (e.RowIndex ≥ 0 && e.ColumnIndex ≥ 0 && !cellFormating)
            {
                #region Einfärben rot grün teuer billig
                //Die letzte Zeile bleibt unberührt, hier werden die Summen addiert und ausgegeben in Rot/Grün
				//Berrechnet wird nur wenn Spalte/Column2 formatiert wird 
				
                if (e.RowIndex != dataGridViewPreise.Rows.Count - 1 && e.ColumnIndex == 2)
                {
                    int colCount = dataGridViewPreise.Columns.Count;
                    // Als Standart schwarz 
                    dataGridViewPreise.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.ForeColor = Color.Black;

                    // Letzte zeile die niedrige und höchste summe berechnen und färben rot /grün 
                    decimal summe = 0;
                    decimal summeNiedrig = 0;
                    decimal summeHoch = 0;
                    int cellSummeNiedrig = 0;
                    int cellSummeHoch = 0;
					
					// fängt an bei Column6, da vorher Beschreibung etc. ausgegeben wird
                    for (int cols = 6; cols < colCount; cols+=2) 
                    {
						if (dataGridViewPreise.Rows[e.RowIndex].Cells[cols].Value.ToString() != "")
                            {
                                summe = Convert.ToDecimal(dataGridViewPreise.Rows[e.RowIndex].Cells[cols].Value);

                                if (summe > summeHoch)
                                {
                                    summeHoch = summe;
                                    cellSummeHoch = cols;

                                    if (summeNiedrig == 0)
                                    {
                                        summeNiedrig = summe;
                                        cellSummeNiedrig = cols;
                                    }
                                }
                                else if (summe < summeHoch)
                                {
                                    summeNiedrig = summe;
                                    cellSummeNiedrig = cols;
                                }
                            }
                    }

                    dataGridViewPreise.Rows[e.RowIndex].Cells[cellSummeNiedrig].Style.ForeColor = Color.Green;
                    dataGridViewPreise.Rows[e.RowIndex].Cells[cellSummeHoch].Style.ForeColor = Color.Red;
                }

                #endregion
                //di Summen in der Letzen Spalte, gesondert in einer Methode berrechnet, bei CellValueChange und beim Laden
                else if (e.RowIndex == dataGridViewPreise.Rows.Count - 1 && e.ColumnIndex == 2)
                {
                    e.CellStyle.BackColor = Color.LightGray;
                    float FontSize = dataGridViewPreise.DefaultCellStyle.Font.Size;
                    string FontName = dataGridViewPreise.DefaultCellStyle.Font.FontFamily.ToString();
                    e.CellStyle.Font = new Font(FontName, FontSize + 3, FontStyle.Bold);

                    int colCount = dataGridViewPreise.Columns.Count;

                    // letzte zeile die niedrige und höchste summe bererchnen und färben rot /grün eventuell ein Bild in celle bei ep
                    decimal summe = 0;
                    decimal summeNiedrig = 0;
                    decimal summeHoch = 0;
                    int cellSummeNiedrig = 0;
                    int cellSummeHoch = 0;
                    for (int cols = 6; cols < colCount; cols+=2) // fängt an bei 6
                    {
                        summe = Convert.ToDecimal(dataGridViewPreise.Rows[e.RowIndex].Cells[cols].Value);

						if (summe > summeHoch)
						{
							summeHoch = summe;
							cellSummeHoch = cols;

							if (summeNiedrig == 0)
							{
								summeNiedrig = summe;
								cellSummeNiedrig = cols;
							}
						}
						else if (summe < summeHoch)
						{
							summeNiedrig = summe;
							cellSummeNiedrig = cols;
						}
                    }
					
					cellFormating = true;
                    dataGridViewPreise.Rows[e.RowIndex].Cells[cellSummeNiedrig].Style.ForeColor = Color.Green;
                    dataGridViewPreise.Rows[e.RowIndex].Cells[cellSummeHoch].Style.ForeColor = Color.Red;
                }
            }
        }
		
private void dataGridViewPreisspiegel_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
	rechneBillgsteAnbieter(e.RowIndex, e.ColumnIndex);
	cellsEingefärbt = false;
}

Zu dem Profiler ist das der Leistungsprofiler ? (Analysieren>Leistungsprofiler)

Thema: Färben jeder 2. Column im DGV nach niedrigstem Wert
Am im Forum: GUI: Windows-Forms

Moin,

ich habe ein DGV in dem manuell Spalten hinzugefügt werden die einen Einheitspreis und einen
Gesamtpreis beinhalten. Der niedrigere Wert bekommt die Font-Color Grün, der höhere Rot.
Funktioniert alles gut, lediglich Teile meiner GUI frieren ein und der GC sammelt sich dusselig.
Steh aber irgendwie auf dem schlauch hierbei...


private void dataGridViewPreise_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {          

            if (e.RowIndex ≥ 0 && e.ColumnIndex ≥ 0)
            {
                #region Einfärben rot grün teuer billig
                //Die letzte Zeile bleibt unberührt, hier werden die Summen addiert und ausgegeben in Rot/Grün
				//Berrechnet wird nur wenn Spalte/Column2 formatiert wird 
				
                if (e.RowIndex != dataGridViewPreise.Rows.Count - 1 && e.ColumnIndex == 2)
                {
                    int colCount = dataGridViewPreise.Columns.Count;
                    // Als Standart schwarz 
                    dataGridViewPreise.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.ForeColor = Color.Black;

                    // Letzte zeile die niedrige und höchste summe berechnen und färben rot /grün 
                    decimal summe = 0;
                    decimal summeNiedrig = 0;
                    decimal summeHoch = 0;
                    int cellSummeNiedrig = 0;
                    int cellSummeHoch = 0;
					
					// fängt an bei Column6, da vorher Beschreibung etc. ausgegeben wird
                    for (int cols = 6; cols < colCount; cols++) 
                    {
						// jede zweite spalte mit dem EP
                        if (cols % 2 == 1 && dataGridViewPreise.Rows[e.RowIndex].Cells[cols].Value != null) 
                        {
                            if (dataGridViewPreise.Rows[e.RowIndex].Cells[cols].Value.ToString() != "")
                            {
                                summe = Convert.ToDecimal(dataGridViewPreise.Rows[e.RowIndex].Cells[cols].Value);

                                if (summe > summeHoch)
                                {
                                    summeHoch = summe;
                                    cellSummeHoch = cols;

                                    if (summeNiedrig == 0)
                                    {
                                        summeNiedrig = summe;
                                        cellSummeNiedrig = cols;
                                    }
                                }
                                else if (summe < summeHoch)
                                {
                                    summeNiedrig = summe;
                                    cellSummeNiedrig = cols;
                                }
                            }
                        }
                    }

                    dataGridViewPreise.Rows[e.RowIndex].Cells[cellSummeNiedrig].Style.ForeColor = Color.Green;
                    dataGridViewPreise.Rows[e.RowIndex].Cells[cellSummeHoch].Style.ForeColor = Color.Red;
                }

                #endregion
                //di Summen in der Letzen Spalte, gesondert in einer Methode berrechnet, bei CellValueChange und beim Laden
                else if (e.RowIndex == dataGridViewPreise.Rows.Count - 1 && e.ColumnIndex == 2)
                {
                    e.CellStyle.BackColor = Color.LightGray;
                    float FontSize = dataGridViewPreise.DefaultCellStyle.Font.Size;
                    string FontName = dataGridViewPreise.DefaultCellStyle.Font.FontFamily.ToString();
                    e.CellStyle.Font = new Font(FontName, FontSize + 3, FontStyle.Bold);

                    int colCount = dataGridViewPreise.Columns.Count;

                    // letzte zeile die niedrige und höchste summe bererchnen und färben rot /grün eventuell ein Bild in celle bei ep
                    decimal summe = 0;
                    decimal summeNiedrig = 0;
                    decimal summeHoch = 0;
                    int cellSummeNiedrig = 0;
                    int cellSummeHoch = 0;
                    for (int cols = 6; cols < colCount; cols++) // fängt an bei 6
                    {
                        if (cols % 2 == 1) // jede zweite spalte 
                        {
                            summe = Convert.ToDecimal(dataGridViewPreise.Rows[e.RowIndex].Cells[cols].Value);

                            if (summe > summeHoch)
                            {
                                summeHoch = summe;
                                cellSummeHoch = cols;

                                if (summeNiedrig == 0)
                                {
                                    summeNiedrig = summe;
                                    cellSummeNiedrig = cols;
                                }
                            }
                            else if (summe < summeHoch)
                            {
                                summeNiedrig = summe;
                                cellSummeNiedrig = cols;
                            }
                        }
                    }
                    dataGridViewPreise.Rows[e.RowIndex].Cells[cellSummeNiedrig].Style.ForeColor = Color.Green;
                    dataGridViewPreise.Rows[e.RowIndex].Cells[cellSummeHoch].Style.ForeColor = Color.Red;
                }
            }
        }

Thema: Auf/Zuklappen von Regions als Shortcut in VisualStudio 2017 gesucht
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Danke @p!ille!
Zumindest klappt VS mit STRG + M + L schon mal alles inkl. #region zusammen.
Leider aber auch alles bis zu dem Namespace inkl. aller Klassen.

Thema: Auf/Zuklappen von Regions als Shortcut in VisualStudio 2017 gesucht
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ich habe nun auf VisualStudio 2017 umgestellt und komme
nach langer Suche nicht mit den Zusammenklappen/Aufklappen Shortcuts klar.

In den älteren Versionen habe ich mit STRG-M+O Alle Funktionen und auch #region'en
zugeklappt.

In der 2017er kann ich nur die Aktuelle #region oder einzelne mit Strg-M, Strg-M zuklappen,
Strg-M, Strg-L alle aufklappen.
Das zuklappen dauert lange bei 10 offenen #region Abschnitten, da ich jede anklicken muss und
diese offen bleiben.

Wie kann ich auch alle Regionen mit einem Shortcut zuklappen?

Thema: Aktives Fenster hervorheben / Hintergrundfenster transparent
Am im Forum: GUI: Windows-Forms

Muss nochmal dieses Thema hier auffrischen, da ich eine Lösung habe, nur leider etwas performancedürftig:

Main Form1 hat ein DataGridView etc.

über einen Aufruf einer Methode
bekomme ich ein Eingabe-Fenster in dem ich wiederum Eingabefenster etc... und
Bearbeitungsfenster öffnen kann.

Code der Form1 mit dem Öffnen des Dialoges und dem ausgrauen mit der Form2gray:


private void button1_Click(object sender, EventArgs e)
        {
            // das transparente Form zuerst laden, dauert aber länger obwohl 
            // nicht viel geladen werden muss !?

            Form2gray gr = new Form2gray();
            gr.Show();
            FormEingabe frm = new FormEingabe();
            if (frm.ShowDialog() == DialogResult.OK)
            {
                // Code ausführen ...
                int idA = frm._ladeId;
                gr.Close();
            }
            else
            {
                gr.Close();
            }
        }

Das "zeischenform" wird nicht in der Taskleiste angezeigt, und schließt
mit Beenden des Dialoges, aber es dauert lange bis das Form geladen ist X(

Code von dem "zwischenform":


 private void Form2gray_Load(object sender, EventArgs e)
        {
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            this.Name = "Form2gray";
            this.Opacity = 0.5D;
            this.Text = "";
            this.WindowState = System.Windows.Forms.FormWindowState.Maximized;

            // die Taskleiste soll bedienbar bleiben
            Left = Top = 0;
            Width = Screen.PrimaryScreen.WorkingArea.Width;
            Height = Screen.PrimaryScreen.WorkingArea.Height;
        }


Würde das ganze gerne schöner gestalten ...

Thema: [gelöst] Nach maximaler Anzahl Zeichen in einer RichTextBox Zeilenumbruch einfügen
Am im Forum: GUI: Windows-Forms

Da ich selber viel von meinem Eigenen Programm eingebunden habe,
muss ich da erst ein "verständliches" Snippet von erstellen,
aber ich werde es dann demnächst hier mal posten.

Thema: [gelöst] Nach maximaler Anzahl Zeichen in einer RichTextBox Zeilenumbruch einfügen
Am im Forum: GUI: Windows-Forms

Also habe es nun geschafft die Formatierung zu behalten, bitte um Verbesserungsvorschläge!

- 9.6.15 kleine Anpassungen


   /// <summary>
        /// Gibt eine RichTextBox aus mit WordWrap absätzen und gleibleibentem Style
        /// </summary>
        /// <param name="rtbIn">RichTextBox</param>
        /// <returns></returns>

  private RichTextBox wordWrapRtf(RichTextBox rtbIn)
        {
            RichTextBox rtbOut = new RichTextBox();           
            //rtbOut bekommt den Text mit Style von rtbIn übergeben, zusätzlich werden die
           // WordWrap Umbrüche am Ende RichTextBox eingefügt

            int lineCount = rtbIn.GetLineFromCharIndex(rtbIn.Text.Length);
            bool neuerAbsatz = false;
            bool absatzErstellt = true;

            for (int i = 0; i < lineCount + 1; i++)
            {
                int start = rtbIn.GetFirstCharIndexFromLine(i);
                int end = i < lineCount ? rtbIn.GetFirstCharIndexFromLine(i + 1) : rtbIn.TextLength;
                                
                if (absatzErstellt)
                {
                    neuerAbsatz = false;
                }
                else
                {
                    neuerAbsatz = true;
                }
                for (int rChar = start; rChar < end; rChar++)
                {
                    string toAppend = rtbIn.Text[rChar].ToString();

                    if (toAppend == "\n")
                    {
                        absatzErstellt = true;
                        rtbOut.AppendText(Environment.NewLine);
                    }
                    else 
                    {
                        
                        if (neuerAbsatz)
                        {
                            rtbOut.AppendText(Environment.NewLine);
                            rtbOut.AppendText(toAppend);
                            neuerAbsatz = false;
                        }
                        else
                        {
                            absatzErstellt = false;
                            rtbOut.AppendText(toAppend);
                        }
                        rtbOut.Select(rtbOut.TextLength - 1, 1);
                        rtbIn.Select(rChar, 1);

                        rtbOut.SelectionAlignment = rtbIn.SelectionAlignment;
                        rtbOut.SelectionBullet = rtbIn.SelectionBullet;
                        rtbOut.SelectionColor = rtbIn.SelectionColor;
                        rtbOut.SelectionFont = rtbIn.SelectionFont;
                        rtbOut.SelectionHangingIndent = rtbIn.SelectionHangingIndent;
                        rtbOut.SelectionIndent = rtbIn.SelectionIndent;
                        rtbOut.SelectionCharOffset = rtbIn.SelectionCharOffset;
                    }                   
                }
            }
            return  rtbOut;
        }